Насколько я понимаю, основная причина вашего вопроса заключается в том, как развернуть структуру БД, изменяющую БД на производстве, с минимальным временем простоя. Для этого я бы go с сине-зелеными развертываниями 1 .
После ваших комментариев я предполагаю, что у вас уже есть запущенный экземпляр из PostgreSQL и хотел бы изменить содержимое БД путем изменения структуры файла непосредственно на «диске» (в данном случае PV C).
Изменение структуры данных непосредственно на диске не является лучшим Идея, если мы говорим о целостности данных, et c.
Причины этого утверждения объясняются в этой статье 2 . Он описывает, как именно postgreSQL хранит данные на диске.
PostgreSQL (по умолчанию) записывает блоки данных (что PostgreSQL вызывает страницы) на диск в виде 8k блоков.
Кроме того, существует связь между таблицей и file_path, поэтому postgresql знает, в каком именно файле хранится какая таблица.
SELECT pg_relation_filepath('test_data');
pg_relation_filepath
----------------------
base/20886/186770
В этом примере файл /database/base/20866/186770
содержит фактические данные для таблицы test_data
.
Какой правильный способ обновления базы данных вместо входа в систему в модуль и выполнение запросов
Однако, если вы уверены, что у вас есть полный набор файлов для работы с БД (например, тот, который вы используете во время pg_dump / pg_restore), вы можете попробовать поместить эти данные на другом PV C и пересоздать модуль, однако это все равно приведет к простою.
Надеюсь, это поможет.