[Bookworm] Correct Flask DB migration process

Move the old manage script to _legacy, and add a new _flask version with
modern Flask tooling. Decide which one to call via pvc-api-db-migrate
using /etc/debian_version call.
This commit is contained in:
Joshua Boniface 2023-09-01 00:24:47 -04:00
parent 6c407d54c3
commit 22faaa9bbc
3 changed files with 42 additions and 2 deletions

View File

@ -11,5 +11,16 @@ if [[ ! -f ${PVC_CONFIG_FILE} ]]; then
fi
pushd /usr/share/pvc
./pvcapid-manage.py db upgrade
case "$( cat /etc/debian_version )" in
10.*|11.*)
# Debian 10 & 11
./pvcapid-manage_legacy.py db upgrade
;;
*)
# Debian 12+
flask --app ./pvcapid-manage_flask.py db upgrade
;;
esac
popd

View File

@ -0,0 +1,29 @@
#!/usr/bin/env python3
# pvcapid-manage_flask.py - PVC Database management tasks (via Flask CLI)
# Part of the Parallel Virtual Cluster (PVC) system
#
# Copyright (C) 2018-2022 Joshua M. Boniface <joshua@boniface.me>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
###############################################################################
from pvcapid.flaskapi import app, db
from pvcapid.models import * # noqa F401,F403
from flask_migrate import Migrate
migrate = Migrate(app, db)
# Call flask --app /usr/share/pvc/pvcapid-manage_flask.py db upgrade

View File

@ -1,6 +1,6 @@
#!/usr/bin/env python3
# manage.py - PVC Database management tasks
# pvcapid-manage_legacy.py - PVC Database management tasks (Legacy)
# Part of the Parallel Virtual Cluster (PVC) system
#
# Copyright (C) 2018-2022 Joshua M. Boniface <joshua@boniface.me>