Копирование SQL таблиц через консоль

Надо было мне как-то скопировать таблицу из gitlab с одной машины на другую, при этом там часть значений надо было поменять, чтобы не сломалась она в новом месте.

Вот такую нашёл последовательность действий

# https://www.postgresql.org/docs/current/sql-copy.html - откуда были почерпнуты знания
#  COPY country TO STDOUT (DELIMITER '|');  - вот такой пример был в доке

gitlab-rails dbconsole --database main # Заходим в консоль postgres базы гитлаба
select * from container_repositories;  # Смотрим значения

copy container_repositories to stdout ; # выводим в консоль базу, копируем её в файл

# редактируем руками, самое главное не сломать ничего. Если бы база была сильно большая, то руками
# бы не решился это делать
vim file

# Вставляем в базу на новом сервере
COPY container_repositories FROM STDIN DELIMITER ',' CSV HEADER;

Ну и всегда после таких действий надо иметь представление, что надо будет проверить, чтобы убедиться в правильности. Если что, можно всегда таблицу пересоздать в крайнем случае.

#linux #gitlab #sql