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.