ugrás a tartalomhoz

Adatmigrálás MySQL-ből PostreSQL-be

Fedor · 2005. Okt. 25. (K), 22.24
Hali!

Készítettem egy elég komplex site-ot, MySQL és PHP alapokon, és most, amikor fel akartuk rakni a megrendelő szerverére, kiderült, hogy azon nem MySQL, hanem PostreSQL van, csak ezt nekem elfelejtették megemlíteni az elején, amikor megbeszéltük a dolgokat. Én azt még sosem használtam, nagy a különbség a kétféle adatbázis között? Szerintetek megoldható -e, és ha igen, akkor hogyan, hogy gyorsan és fájdalommentesen átrakjam az adatbázist, és mit kell ahoz a PHP fájlokban átírnom, hogy elérhető is legyen az oldal számára?

Üdv,
Fedor
 
1

<Nincs cím>

-zsolti- · 2005. Okt. 25. (K), 22.36
Hát az adatbázist még egyszerű "áttenni", de ha a PHP-kódodban nem külön adatbázis-absztrakciós réteget (pl. PEAR:DB) használtál a DB eléréséhez, hanem inline "bedrótoztad" a mysql_ függvényeket, akkor azzal meg fogsz szenvedni. Ebben az esetben egy search&replace programmal talán át lehetne túrni a mysql_ függvényeket pgsql-re, mert elég hasonló a paraméterezésük. (De pl. mysql_insert_id nincs pg-ben, meg ilyen apróságok...)

Üdvözlettel: Liebig Zsolt
SWEN INTERNET
2

És mindez a gyakorlatban?

Fedor · 2005. Okt. 25. (K), 22.43
De miképp fogjak hozzá? Gondolom a tesztszerveremre fel kell telepítenem egy PostreSQL szervert is. Ez is beszerezhető ingyen a netről, mint a MySQL? Abszolút ismeretlenként fog menni a feltelepítés (van hozzá könnyen átlátható telepítőprogram), vagy kézzel kell beletúrkálni mindenhova? Van erről valami leírás lehetőleg magyarul? Nem fog összeveszni a MySQL-lel egy gépen? Az Apache config-on, php.ini-n kell valamit változtatni? Teljesen ismeretlen terep ez számomra...

Üdv,
Fedor
3

telepítési útmutató

Fedor · 2005. Okt. 25. (K), 22.48
Közben keresgéltem, és itt a Weblaboron találtam egy cikket:

http://weblabor.hu/cikkek/postgresqltelepites

Talán ez segít valamennyit, de azért még lehet, hogy később visszanézek valami konkrét kérdéssel.

Üdv,
Fedor
6

Közben megtaláltam...

Fedor · 2005. Okt. 25. (K), 22.56
Szia Goba!

Közben megtaláltam ezt is, sajnos beleestem abba a csapdába, hogy amikor először írtam be a keresőtökbe (még a fórumindítás előtt), kihagytam egy karaktert a névből, hát még jó, hogy nem talált semmit...

Üdv,
Fedor
5

<Nincs cím>

-zsolti- · 2005. Okt. 25. (K), 22.55
Teljesen ismeretlen terep ez számomra...
Akkor egyelőre csak localhoston tesztelgesd. Innét tudod letölteni:
http://www.postgresql.org/ftp/
(win32 mappában van a windowsos installshield (postgresql-8.0.4.zip)
Ezt ha kicsomagolod, viszonylag könnyű telepíteni, elfér a MySQL mellett, viszont a tűzfaladban engedélyezni kell a 5432-es portot. Ezután a php.ini-ben is ki kell szedni a ; jelet a pgsql sorából (keress rá).
Utána, ha az install során feltetted a pgAdmint, akkor azt megnyitod, és abban tudsz felvenni adatbázis felhasználót, majd annak adatábzis készíteni. (pgAdminba a telepítés során megadott root adatokkal tudsz belépni.)
Ezután érdemes még feltenni a webrootodba a phpPgAdmint (phpMyAdmin mintájára), azt is konfigolod, és akkor már webes felületről is tudod az előzőleg létrehozott DB felhasználódat használni, meg annak az adatbázisát macerálni. Ha eddig megvagy, és myadminból már be tudsz lépni a DB-be, akkor már jó vagy. Most jön a nehez: php+pg. Ehez szerintem kapd elő a hu.php-net ide vágó függvényeit, találsz benne jó példákat (például rögtön a csatlakozásra, mert az kicsit másként néz ki, mint mysql-ben).
Egyelőre ennyi. Ha Linux alá akarod feltenni, abban nem tudok segíteni, de a konfig ott is hasonló.

Jav: látom van ilyen cikk is itt, na mindegy, azért nem törlöm ki.

Üdvözlettel: Liebig Zsolt
SWEN INTERNET
7

Köszi a kimerítő választ

Fedor · 2005. Okt. 25. (K), 23.04
Windows 2000 alá telepítek, szóval remélem a fentiek segítségével majd elboldogulok valahogy. Mégegyszer köszi.

Üdv,
Fedor
8

Fent van a PostreSQL, de...

Fedor · 2005. Okt. 25. (K), 23.49
...hogyan tovább? Egy másik fórumban találtam erre a linkre:

http://www.mt-dev.com/2002/08/converting-a-database-schema-from-mysql-to-postgresql/

És meg is próbáltam az ott található script segítségével átkonvertálni a mysql által generált *.sql-t, de sikertlenül, nem eszi meg a postreSQL.

Azt hiszem megpróbálom inkább rábeszélni a megrendelőmet, hogy rakasson fel valahogy MySQL-t...

Üdv,
Fedor