Я запускаю Postgres в контейнере Docker (в частности, PostGIS). Если я создаю дамп базы данных из производственной базы данных, а затем импортирую его в контейнер, полученный результат выглядит успешным, но таблицы не создаются. Я заметил, что схема создана, но это все, что я вижу. Однако, если я повторю импорт, он жалуется, что индексы и т. д. уже существуют, поэтому он что-то делает, но я не могу понять, что именно.
Возможно, стоит отметить, что я временно удалил том из контейнера, чтобы исключить возможность проблем с разрешениями тома.
Создание дампа с помощью:
pg_dump postgres://CONNECTIONSTRING > dump.sql
Затем в psql я запускаю
CREATE DATABASE db_name;
\i dump.sql
И я получаю
SET
SET
SET
SET
SET
set_config
------------
(1 row)
SET
SET
SET
SET
CREATE SCHEMA
ALTER SCHEMA
CREATE EXTENSION
COMMENT
SET
SET
CREATE TABLE
ALTER TABLE
CREATE SEQUENCE
…truncated
Но \dt
говорит: «Не нашел связей»
Если я затем импортирую снова:
psql:dump.sql:64: ERROR: relation "accounts" already exists
ALTER TABLE
…truncated
Однако схема создается, я вижу ее с помощью \dn
. Это примерно предел моих знаний, однако я действительно не знаю, что это значит, и определенно не знаю, куда идут данные!
Проблема заключалась в том, что дамп создал схему, внутри которой находились все таблицы. Чтобы увидеть это, мне нужно было установить путь поиска для поиска в этой схеме с помощью:
SET search_path TO tracker_production;