我希望修改 Azure 上 PostgreSQL 实例中的一些表,但我无法弄清楚如何使用 Alembic 执行升级。
我一直在关注教程here ,其中包括在 12:01:00 左右进行的 Heroku 部署。在这种情况下,一旦定义了更改,我们就可以运行 heroku run "alembic Upgrade head"
来执行升级。但是,我找不到 Azure 的等效流程。
我的 postgres 实例位于 VNet 中并连接到 Web 应用程序。到目前为止,我已经对在附加 Web 应用程序中运行的服务器进行了代码更改。我推送到 GitHub,然后将更改部署到 Azure 中。显然,如果该表已存在于 postgres 中,则我对原始架构所做的更改不会反射(reflect)出来。我考虑过删除该表并再次声明,但这似乎是一个非常冒险的策略。
最佳答案
对我有用的是:
- 在我的虚拟环境中包含 Alembic(
requirements.txt
文件) - 确保
alembic.ini
文件位于我的项目的根目录,该文件通过 GitHub 部署到 Azure - 更新
alembic/env.py
以解析 Azure 环境集AZURE_POSTGRESQL_CONNECTIONSTRING
,以便使用以下方法为 Alembic 设置适当的连接值:
config.set_main_option('sqlalchemy.url', <connection_string>)
- 添加 Startup Command to you Web App调用 Alembic 升级并启动 Web 服务器。我用的:
alembic upgrade head; gunicorn --bind=0.0.0.0 --timeout 600 application:app
关于postgresql - 使用 Alembic 更新 Azure Database for PostgreSQL 灵活服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74785271/