我有一个标准运行的mill Pylons Pyramid应用程序,它使用SQLAlchemy来实现其数据库持久性。
我已经设置了一个SQLAlchemy-migrate repo并使其正常工作,但我真的希望能够使用paster来升级和降级数据库,或者至少以某种方式让用户(在安装egg之后)将数据库升级/降级到所需的版本。
我现在已经把它内置到我的应用程序中了,所以在应用程序启动时它会进行版本升级,但我更喜欢用户必须明确升级数据库的东西,这样他们才能确切地知道发生了什么,并知道提前备份。
我该怎么做呢?如何添加要粘贴的命令?
用户设置应用程序的方式是:
paste make-config appname production.ini
paste setup-app production.ini#appname要进行第一次设置,要进行数据库升级或一般情况下的升级,我需要:
paste upgrade-app production.ini#appname或者其他类似的东西。
发布于 2011-06-02 17:38:38
您可以创建自己的paster命令,例如upgrade-app,然后使用paster --plugin=appname upgrade-app /path/to/production.ini appname从任何地方调用它。你可以参考金字塔是如何实现PShellCommand的。
发布于 2011-05-23 18:33:00
这并不完全是您想要的,但是我可以使用Fabric命令来处理。我有一个fabric命令,你可以运行它来为你的应用程序创建一个.ini文件,然后,在你调整了其中的sqlalchemy.url之后,你可以运行一个fabric命令来初始化它的SA迁移并运行升级。从那时起,为了升级,你需要运行fab db_upgrade。
http://bmark.us/install.html
是我设置的安装文档的一个示例。
https://github.com/mitechie/Bookie/blob/master/fabfile/database.py
是可通过Fabric接口使用的数据库特定命令集。
https://stackoverflow.com/questions/6092888
复制相似问题