PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Възстановете PostgreSQL db от резервно копие без проблем с ограничението на външния ключ

Звучи сякаш получавате SQL дъмп, а не двоичен дъмп от pg_dump . Това ще ви даде голяма купчина SQL със схемата (включително FK) в горната част, последвана от куп INSERT за презареждане на данните. Двоичен дъмп от pg_dump ще ви служи по-добре, изглежда, че имате нужда от малко допълнителна конфигурация, за да кажете на PhpPgAdmin къде pg_dump е. След това ще подадете този двоичен дъмп в pg_restore и pg_restore ще възстанови всичко в правилния ред, за да избегне проблеми с референтната цялост (или, по-точно, pg_restore ще възстанови всички данни, след което ще добави ограниченията).

PhpPgAdmin изглежда иска да работа с дъмпове на обикновен SQL вместо pg_restore . Трудно ми е да повярвам в това, но не мога да намеря нищо в документацията за извикване на pg_restore . Ако това е вярно, тогава вероятно ще трябва да редактирате ръчно SQL дъмпа и да преместите всички FK до края.

Можете също така да опитате да добавите SET CONSTRAINTS ALL DEFERRED; в горната част на вашия SQL дъмп, което трябва да забави проверката на ограниченията до края на транзакцията, вие също ще искате да се уверите, че целият блок от INSERT се съдържа в транзакция.

Ако PhpPgAdmin наистина не може да извика pg_restore тогава е по-добре да използвате pg_dump и pg_restore на ръка, така че да имате необходимия контрол върху вашите процедури за архивиране. Съжаляваме, но всеки инструмент за администриране на база данни, който не може да се справи с архивиране на база данни с FK, е по-лош от безполезен. Надяваме се, че някой, който разбира от PhpPgAdmin, ще се появи и ще ни каже как да използваме pg_restore с PhpPgAdmin.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как бързо да премахнете потребител със съществуващи привилегии

  2. Значи инсталирах postgresql и localhost порт в конфликт с ruby ​​приложението?

  3. Java JDBC игнорира setFetchSize?

  4. Напълно гарантиран ли е редът на PostgreSQL, ако сортирате по неуникален атрибут?

  5. Най-добрите нови функции в PostgreSQL 14