Мое локальное соединение на моем сервере Ubuntu (14.04) не работало с моей базой данных Postgres (9.3), поэтому я попытался обновить его до 9.4, чтобы решить проблемы с соединением. К счастью, теперь я могу подключиться к базе данных, но ... Мои старые базы данных (и таблицы, представления и т. Д.) Теперь отсутствуют ...
Можно ли их восстановить? Как бы я поступил так?
Если у Вас нет резервного дампа, лежащего вокруг, самый безопасный способ сделать, это к:
pg_dumpall > backup.sql
, psql -d postgres -f backup.sql
. Эти 9,3 баз данных находятся в другом формате, чем, что 9.4 ожидает и нет никакого простого способа преобразовать их использующий 9,4 инструментов только.
Если Вы не удалили старые 9,3 кластеров должно быть 2 выполнения кластеров:
$ service postgresql status
9.3/main (port 5432): online
9.4/main (port 5433): online
(или использование pg_lsclusters
для отображения существующих кластеров PostgreSQL).
команды PostgresSQL принимают -p
аргумент различать, какой кластер DB Вы используете (он принимает также путь сокета Unix). Можно экспортировать старое использование данных (предполагающий, что старый DB работает на порте 5432
):
su - postgres
pg_dump -p 5432 my_db -f my_db.dump
# import data into new DB cluster
pg_restore -p 5433 -d my_db my_db.dump