升级 Pyramid/SQLAlchemy Web 应用程序
-
09-09-2020 - |
题
我有一个标准运行的 Pylons Pyramid 应用程序,它使用 SQLAlchemy 来实现数据库持久性。
我已经建立了一个 SQLAlchemy-migrate 存储库并使其正常运行,但我真的希望能够使用 Paster 来升级和降级数据库,或者至少以某种方式让用户(安装 Egg 后)升级/降级将数据库升级到所需的版本。
我现在已经将它内置到我的应用程序中,因此在应用程序启动时它会进行版本升级,但我宁愿选择用户明确必须升级数据库的东西,以便他们确切地知道发生了什么,并且知道提前做好备份。
我该怎么办呢?如何添加要粘贴的命令?
用户设置应用程序的方式是:
paste make-config appname production.ini
paste setup-app production.ini#appname
要第一次设置它,进行数据库升级或一般升级,我想要:
paste upgrade-app production.ini#appname
或类似的规定。
解决方案
您可以创建自己的粘贴命令,例如 upgrade-app
, ,然后从任何地方调用它 paster --plugin=appname upgrade-app /path/to/production.ini appname
. 。你可以参考pyramid如何实现PShellCommand。
其他提示
这不是你在寻找什么,但我处理的方式是使用 Fabric 命令。我的OSS应用程序我有一个fabric命令您的flow,它为您的应用程序创建一个.ini文件,然后在调整sqlalchemy.url后,您可以运行init的sa迁移并运行升级的fabric命令。从那时起,升级你运行fab db_upgrade。
是我设置的安装文档的示例。
https://github.com/mitechie/bookie/blob/master / fabfile / database.py
是通过结构接口可用的DB特定命令集。
不隶属于 StackOverflow