PostgreSQL, dump-restore, 8.1 - 8.4

Sziasztok!

Segítséget szeretnék kérni.

Egy Postgre 8.1 alól kell az adatbázisokat és a jogosultságokat átvinni egy 8.4-et futtató kiszolgálóra. A nagy verzióváltás miatt a pg_dump - psql párossal nem sikerült még.

Hogy lehetne megoldani csak konzolból? Lehet-e az új kiszolgálón egyéb felhasználó alá visszatölteni a dumpot?

Előre is köszönöm!
Oli

Hozzászólások

miert nem sikerult?

pg_dump -U | psql -h -p
-U

csak az a user akivel csinalod legyen mind a kettoben azonos joggal rendelkezo, es a db mar legyen letrehozva az uj helyen.

Köszi. Létre van hozva mindkét helyen. Postgres felhasználóval dumpolnám és tölteném vissza és szeretnék más ownert vagy jogot adni az újnak más userre.

pg_dump -u -c -f dumpflie database és pg_restore -d database -v dumpflie segítségével egy datrabig eljutottam de sajnos psqlben nagyon gyér a tudásom ...

Egész sok oka lehet ennek. A "nem sikerült" az nem egy egzakt leírás :)
Kéne a hibaüzenet/postgres log az ok kiderítéséhez.
8.4-el akár az is lehet, hogy régebben egy csomó implicit konverzió elfogadott volt alapértelmezettben, ami a 8.4 szigorúbb típusossága miatt már alapból nem működik. Vagy meg kell pucolni az adatokat, vagy a konverziót ismét engedélyezni kell, lásd 8.4 changelog.

--
Gábriel Ákos

Igen, az igen pontatlan.

A dumport elkészítem így:
pg_dump -Fc -v -c -C -d dbname -f dump_file

Átviszem az új kiszolgálóra és ott visszatöltöm így:
pg_restore -d dbname -v dump_file

Aminek a végén ezt kapom:
WARNING: errors ignored on restore: 216
Mivel a táblát felének tulajdonosa egy már nemlétező és nem használt felhasználó (12 tábla)

Csatlakozom az adatbázishoz:
psql -U dbuser -W -d dbname

\dt -vel lekérdezve láthatóak a táblát dbuser tulajdonában.

Előtte létrehoztam az adatbázist és az adatbázis felhasználót azonosan mint az első kiszolgálón.

Az alkalmazás ami csatlakozna hozzá Ruby-ban íródott és postgres-pr gem-el csatlakozik hozzá. A futtatását Apache2 végzi passenger-el.