使用Alembic更新Azure Database for PostgreSQL灵活服务器

b09cbbtk  于 2023-05-17  发布在  PostgreSQL
关注(0)|答案(1)|浏览(135)

我想修改Azure上PostgreSQL示例中的一些表,但我不知道如何使用Alembic执行升级。
我一直在遵循教程here,其中包括Heroku部署在12:01:00左右。在这种情况下,一旦定义了更改,我们就可以运行heroku run "alembic upgrade head"来执行升级。但是,我无法找到Azure的等效过程。
我的postgres示例位于VNet中,并连接到Web应用程序。到目前为止,我已经对在附加的Web应用程序中运行的服务器进行了代码更改。我推送到GitHub,然后在Azure中部署更改。显然,如果该表已经存在于postgres中,那么我对原始模式所做的更改将不会被反映出来。我考虑过删除该表并再次声明,但这似乎是一个非常冒险的策略。
一个类似的问题被问到here,但一直没有答案。我还检查了AlembicAzure的文档,但没有找到任何东西。

6tdlim6h

6tdlim6h1#

对我有用的是:

  • 在虚拟环境中包含Alembic(requirements.txt文件)
  • 确保alembic.ini文件位于通过GitHub部署到Azure的项目的根目录下
  • 更新alembic/env.py以解析Azure环境设置AZURE_POSTGRESQL_CONNECTIONSTRING,以使用以下命令为Alembic设置适当的连接值:
config.set_main_option('sqlalchemy.url', <connection_string>)
  • 向您的Web App添加启动命令以调用Alembic升级并启动Web服务器。我使用的:
alembic upgrade head; gunicorn --bind=0.0.0.0 --timeout 600 application:app

相关问题