Sziasztok!
A konkrét feladat:
Ötleteket kérnék arra vonatkozóan, hogy egy meglévő excel táblában vezetett (.csv-be kimenthető), kb 1500 rekorddal rendelkező - alap felhasználói adatot tartalmazó - állományt miként lehetne a Drupal 7 users táblájába importálni - bevarázsolni?
Létezik erre valamilyen importáló program vagy modul?
(PHPMyAdmin import menüjében nem találtam azt hogy az importálás egyetlen táblára vonatkozzon)
Avagy egy teljesen külsős SQL programmal amiben van ilyen importáló tools (pl PL/SQL Developer)
- Kiimportálom drupal 7-ből a users táblát
- feltöltöm CSV (vagy excel) adatokkal pl/sql developerben
- csinálok egy dumpot erről az egyetlen tábláról
- és ezt importálom az internetes tárhelyre PHPmyAdminnal - (avagy SQL scripttel)
Jól gondolkozom, megoldható így?
Nézd meg ezt Feeds.
Nézd meg ezt Feeds.
Köszi, megnéztem, de a User
Köszi, megnéztem, de a User import-al nem boldogulok, mindig visszadobja a vesszővel szeparált (Import CSV files with one or more of these columns: name, mail, created) - minta alapján létrehozott próba file-t...
Mi lehet a gond?
A letöltött template file-t is próbáltam már poénból importálni, de még azt sem fogadta el..
SQLSTATE[21S01]: Insert value list does not match column list: 1136 Column count doesn't match value count at row 1 - a hibaüzenet
Többféle változattal is próbálkoztam excelből mentett csv-be. (egy oszlopba egy adat, egy oszlopba minden adat, vesszőkkel szeparálva az üres mezők is, megnéztem a users táblát, hogy elvileg hány adatoszlopa van, és azzal egyezően feltölteni (ahol lehet null értékkel stb..)
Nos, bár a feeds-el nem
Nos, bár a feeds-el nem jutottam dűlőre, pofonegyszerűen megoldódott a dolog phpmyadminnal történő közvetlen adatbázisba importálással (a users tábla adatoszlopaival feltöltve).
(intelligensebb ez a phpmyadmin mint gondoltam)
Na ez az, ami egy
Na ez az, ami egy öngyilkosságnak felel meg. Mert sose tudhatod (ha nem értesz elég mélyen hozzá), hogy milyen plusz modulok milyen plusz rekordokat kellene hogy létrehozzanak más táblákban, hogy a konzisztencia fennmaradjon. Ha ilyeneket csinálsz, ne lepődj meg, ha látható ok nélkül egyes funkciók nem működnek majd.
Tehát mindig a Drupal API megfelelő függvényeit használjuk, és nem turkálunk az adatbázisban!
Nagy Gusztáv
Hidd el jól működik az ugyan
Hidd el jól működik az ugyan én csak hallottam, hogy ez jó d7 alá mert úgy néz ki ez lesz támogatva a Node import helyett.
De nem hagyott nyugodni én is felraktam gyorsan. A user.csv teszt fájlal probáltam ki amit a Feeds test könyvtárában találtam. Nekem is hibát dobot erre megnéztem a hiba naplóját és azt láttam hogy, a (Wednesday,wednesdayexample.com,1228347137) sornál téves a e-mail cím. mert csak ezt a sort dobta ki a hibanapló. Javítottam erre (Wednesday,[email protected],1228347137) és már ezt is bimportálta.
Ha lúd legyen kövér gyorsan hozzá tettem még 5 db usert a meglévőhöz és azokat is szépen be rakta, tehát betőltéshez szerintem teljesen hibátlanúl működik, még akkor is ha csak bővíted a meglévő csv állományt.
Hogy tudja frissíteni a meglévő állományt arra még én se jöttem rá e rövid próba után. de ez támogatja a Drupal commerce-t is igy szép jővő elött áll.
hibanapló?
Hmm, hát jó, engem is érdekel a dolog annyira, hogy még izmozzak rajta:
Hol lehet megnézni pl. erre az importálásra vonatkozó hibanaplót?
és lehet, hogy valami máson csúszik el a dolog, mert - természetesen - én is azon karakter(adat) formátumokat adtam meg, amit te is hoztál példának... (, @)
Ennyit tudtam tenni az ügy
Ennyit tudtam tenni az ügy érdekében LINK. Tényleg csak azért tettem fel, hogy ne modjak sültlenséget, de most már egyre jobban teszik ez a modul a node import helyett.
Nohát, végre kicsit tudtam
Nohát, végre kicsit tudtam foglalkozni ezzel a dologgal, köszönöm a segítségeket.
Sikerült Feeds-el is importálni, nagy segítségre volt ez az oldal is még, ahol videoval is szemléltetve van a működés: http://developmentseed.org/blog/2009/dec/15/importing-and-aggregating-stuff-feeds
Lehet szerkeszteni, hogy milyen adatokat importáljon a modul, pl ki lehet hagyni a létrehozás dátumát és pl csak name, e-mail mezőket is be lehet állítani.
Menjünk tovább: ugyebár egy tömeges user importálásnál, jó hogyha rögtön egy akármilyen jelszót is beállítunk (akármilyen banális, pl kezdőszó + egyesével emelkedő szám) ami jobb a semminél, később úgyis megváltoztathatja aki akarja.
Viszont ennek beállítását nem láttam választható opcióként, kérdés hát, hogy ez megoldható-e?
Az az eset sem túl szívderító, hogy mondjuk egy 1500-as user listánál nincs senkinek jelszó beállítva, arról nem is beszélve hogy esetleg egyenként állítgassuk be az Adminisztráció/peoples felületen.
Esetleg ezt az egy pass mezőt töltsük fel közvetlen sql update-el?
Ronda...
...de működik:
- Excel + concat()
- SQL string összefűzése
- betolás a PHPMyAdminba
Szerintem ez a leggyorsabb.
---------------
Tátrai József
Drupler Kft.
http://www.drupler.hu