Перенесення бази PostgreSQL із сервера на сервер
Чи не проста операція, якщо ви не мали досвіду налаштування / роботи з postgresql до цих пір. Розкажу поетапно як вивантажити дамп бази і як потім цей дамп завантажити в потрібному місці :).
Фокуси, які тут не працюють
Бази mySQL я іноді експортую не за допомогою скрипту, а копіюю файли даних. У каталозі, де вони зберігаються, назва підкаталогів - це імена баз, а кожна таблиця складається з 2-3 файлів, з іменем як сама таблиця. Копіювання спрацює, якщо основні версії серверів збігаються.
У випадку postgresql такий фокус не працює. Ви можете підглянути папку з базами даних у конфігурації (вам допоможе ось така команда)
У прикладі папка з базами: -D /var/lib/postgresql/9.3/main
Назви таблиць та баз ви тут не побачите у явному вигляді. Копіювання файлів буде марним.
Найголовніший адмін
Переходимо під цей облік.
Переглянути список баз даних
Щоб дізнатися, які бази у вас є в наявності, можна використовувати команду:
У консоль буде виведено список баз даних, інформація про власника кожної бази, привілеї.
Якщо ви й так знаєте назву бази даних, і у вас є реквізити доступу до неї (взяті, наприклад, у налаштуваннях підключення вашого сайту чи програми), то знайомство зі списком баз можна пропустити.
Отримання дампи бази postgresql
Для створення дамп бази служить команда pg_dump. Ми надішлемо її виведення у файл через gzip.
myDBname – це назва бази даних, а myDB-filedump.gz – назва файлу, куди буде збережено дамп.
-h [host] : явна вказівка хоста, значення за промовчанням localhost або значення змінної оточення PGHOST.
-О : пропускає команди для встановлення власника таблиць, видів і т.д.
-F - формат виведенняданих custom, tar, plane text.
-U [username] — користувач, правами якого доступу потрібно скористатися при запиті даних. За промовчанням береться поточний користувач. За потреби програма запросить пароль.
-C, -create - додає команду для створення БД, я покажу як створити її вручну.
-c — додає команди видалення (drop) об'єктів (таблиць, видів тощо.).
Є й потужніша команда, яка вивантажує відразу всі бази: