Я нашел способ справиться с этим. Я не собираюсь устанавливать его как правильный ответ, пока кто-то еще не подтвердит, если это хороший подход.
По сути, я создал постоянную заявку на объем. В развертывании сервера я подключаю миграцию / папку к этому постоянному тому. Таким образом, всякий раз, когда модуль удаляется, папка миграций / остается и сохраняется после перезапуска модуля.
Это будет выглядеть примерно так внутри развертывания сервера.
containers:
..........
volumeMounts:
- name: migrationstuff
mountPath: 'MyServerApplicationDirectory/migrations'
volumes:
- name: migrationstuff
persistentVolumeClaim:
claimName: migrate-pvc
ПВХ будет выглядеть так:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: migrate-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
Для тех, кто решил использовать этот подход с миграцией фляги, есть сложная проблема "курица или яйцо". Когда вы запускаете flask db init, он создает папку migrations / с некоторыми элементами в ней. Тем не менее, если существует PVC, создающий пустую миграцию / папку, миграция фляги уже считает, что папка существует. Вы также не можете удалить папку с помощью rmdir, потому что на ней есть рабочий процесс. Тем не менее, вам нужно получить содержимое команды инициализации флакона migrate в пустую папку migrations / ..... .....
Трюк, который я нашел, был:
python flask db init --directory migration
mv migration/* migrations/
Это включило все нужные вам файлы в новую папку «миграции». Затем вы копируете все это в папку migrations /, чтобы затем сохранить ее. Flask migrate автоматически ищет эту папку, если вы пропустите флаг --directory.
Затем удалите папку миграции rmdir migration
(или просто подождите, пока ваш модуль перезапустится, и в любом случае он исчезнет).
Теперь у вас есть правильная миграция / папка со всем в ней. Когда вы закрываете свою колбу и перезагружаетесь, PVC вводит заполненную миграцию / папку обратно в коробку. Теперь я могу обновить / понизить. Просто нужно быть осторожным, чтобы не удалить ПВХ!