Мой вопрос:
Как сохранить текущую версию моего программного обеспечения в файле дампа, созданном PostgreSQL?
Причина моего вопроса:
Я разработал программное обеспечение JAVA с использованием базы данных PostgreSQL. Программное обеспечение устанавливается локально на компьютер каждого пользователя, база данных также локальна и индивидуальна для каждого пользователя.
Я создал функцию, позволяющую пользователям создавать резервные копии своих баз данных и восстанавливать их. Для этого мой код JAVA запускает pg_dump
для создания файла резервной копии и pg_restore
для его восстановления. То есть резервная копия — это не что иное, как дамп базы данных, сгенерированный командой ниже:
pg_dump.exe -U myuser -h localhost -p 5432 -Fc -f bkpname.bkp mydb
Проблема в том, что я обычно запускаю обновления программного обеспечения. Новые версии программы всегда совместимы с дампами предыдущих версий. Однако более старые версии программного обеспечения несовместимы с дампами, созданными более новой версией.
Иногда бывает так, что пользователь пытается восстановить последнюю версию дампа в старой версии программы, которая несовместима.
Я хотел бы, чтобы в файле дампа была информация о том, какая версия программного обеспечения его сгенерировала. Таким образом, я мог бы просто отобразить сообщение, информирующее пользователя о том, что ему необходимо загрузить самую последнюю версию программного обеспечения, чтобы восстановить резервную копию.
Я думал о двух приведенных ниже формах, но думаю, что они не подходят:
- Чтобы сохранить версию программного обеспечения в имя файла дампа. Было бы плохо, потому что пользователь мог бы переименовать файл.
- Чтобы объединить версию внутри содержимого файла дампа. Боюсь, что файл дампа мог как-то испортиться в процессе ввода текста внутри него или в процессе удаления из него текста (до восстановления дампа).
Есть ли лучший способ добавить эту информацию в файл дампа?
pg_dump
без-Fc
и просто добавить любую строку в файл дампа между/**/
или после--
, а затем заархивировать его, чтобы уменьшить размер - person Vao Tsun   schedule 13.06.2017