我有一个标准运行的 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。

http://bark.us/install.html

是我设置的安装文档的示例。

https://github.com/mitechie/bookie/blob/master / fabfile / database.py

是通过结构接口可用的DB特定命令集。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top