【发布时间】:2011-05-23 04:36:31
【问题描述】:
我有一个标准运行的 mill Pylons Pyramid 应用程序,它使用 SQLAlchemy 进行数据库持久性。
我已经建立了一个 SQLAlchemy-migrate repo 并让它运行起来,但我真的希望能够使用 paste 来升级和降级数据库,或者至少以某种方式拥有用户(在安装 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。 -
@sayap 你介意做一个答案让我接受吗?
-
完成。所以需要一个“这个快速而肮脏的评论对我来说已经足够好了”的功能:)
-
@sayap:被问到这个问题......见twitter.com/codinghorror/status/74736780737384448
标签: python sqlalchemy pyramid paster sqlalchemy-migrate