Adatok importálása külső fileból (pl .CSV)

Impresso képe

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?

Drupal verzió: 
pityu73 képe

Nézd meg ezt Feeds.

0
0
Impresso képe

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..)

0
0
Impresso képe

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)

0
0
Nagy Gusztáv képe

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!

0
0

Nagy Gusztáv

pityu73 képe

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.

0
0
Impresso képe

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... (, @)

0
0
pityu73 képe

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.

0
0
Impresso képe

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?

0
0
eFeS képe

...de működik:
- Excel + concat()
- SQL string összefűzése
- betolás a PHPMyAdminba

Szerintem ez a leggyorsabb.

0
0

---------------
Tátrai József
Drupler Kft.
http://www.drupler.hu