Игнорировать пропущенные столбцы при восстановлении дампа SQL - PullRequest
0 голосов
/ 12 марта 2019

Я хочу импортировать дамп базы данных в новую базу данных, в которой нет всех столбцов, которые были в старой базе данных.

Как я могу игнорировать эти столбцы?

Создан дамп:

pg_dump --data-only old_database > dump_data_12_3_2019.sql;

Когда я пытаюсь импортировать дамп, я получаю следующую ошибку:

psql:sdump.sql:3569: ERROR:  column "column" of relation "table" does not exist

1 Ответ

0 голосов
/ 12 марта 2019

Вам нужно будет действовать поэтапно:

  1. Создайте непомеченную или временную таблицу со всеми столбцами.

  2. COPY ваш файл в эту таблицу.

  3. Используйте INSERT INTO ... SELECT ... для вставки соответствующих частей незафиксированной или временной таблицы.

  4. Удалите незарегистрированную таблицу или завершите сеанс, чтобы удалить временную таблицу.

Альтернативой является использование таких инструментов, как awk, для предварительной обработки файла и удаления лишних столбцов.

...