升级Pyramid / SQLAlchemy Web应用

问题描述

|| 我已经完成了磨工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
,然后用anywhere3 with从任何地方调用它。您可以参考金字塔如何实现PShellCommand。     ,它并不是您要找的东西,但是我处理此问题的一种方法是使用Fabric命令。在我的OSS应用程序中,我有一个运行的Fabric命令,该命令会为您的应用程序创建一个.ini文件,然后,在其中调整sqlalchemy.url之后,您运行一个用于进行SA迁移并运行升级的Fabric命令。从那时起,要运行db_upgrade进行升级。 http://bmark.us/install.html 是我已设置的安装文档的示例。 https://github.com/mitechie/Bookie/blob/master/fabfile/database.py 是通过Fabric接口可用的一组特定于数据库的命令。