Postgresql, hogyan lehet átvinni az adatokat egy adatbázisból a másikba

Nemrég szembesülnek azzal a problémával az adatátvitel a postgresql, mint kiderült, a lerakó, majd töltse be adatokat PostgreSQL valamivel bonyolultabb, mint a MySQL. Gondold át, hogyan kell csinálni a segítségével két csapat - pg_dump és pg_restore.

Kezdeni ezzel a lerakó a szerver adatokat átvinni:

Ez létrehoz egy teljes adatbázis dump adatbázisnévre a BLOB'ami nélkül owner'a, egy speciális formátumban pg_restore.

Ezután hozzon létre egy adatbázist a szerveren, amely biztosítja, hogy az adatok betöltésekor:

Zászlók ebben az esetben a következők:

  • Állj hiba esetén.
  • Ne hajtsa végre a jogokba való visszahelyezés (esetemben két különböző szerverek egyszerűen különböző felhasználói adatbázist, amely szintén a behozatali hiba).
  • Fuss mindent egy tranzakció (ha hirtelen kap egy hiba - könnyebb lesz a nulláról kell kezdeni).

Továbbá, mivel a felhasználók két különböző szerverek változhat, és öntsd felépülés helyreállítása nélkül a felhasználónak kell letenni a felhasználói jogok teszt (kitett jobbra az asztalnál, és egy sorozat bemutatkozó aka megtekintés). Az én esetemben, a csapat végzett a felhasználó pgsql:

Ne felejtsük el, hogy változtatni az összes releváns dbname adatbázis nevét, és természetesen, meg kell változtatni, ha a felhasználói név, stb

Ui Talán az utolsó 3 csapat helyettesíteni lehet belsőleg PostgreSQL, de ez elfogadható számomra.

A fenti parancs hozzárendelése a jogokat lehet csomagolva egy shell-script. Például, az ilyen:

Az első paraméter a forgatókönyvet - az adatbázis nevét, 2. - felhasználó neve, amelyen szeretnénk rendelni jogokat.

Kapcsolódó cikkek