【问题标题】:Upgrading Pyramid/SQLAlchemy web apps升级 Pyramid/SQLAlchemy Web 应用程序
【发布时间】: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


【解决方案1】:

您可以创建自己的粘贴命令,例如upgrade-app,然后在任何地方使用paster --plugin=appname upgrade-app /path/to/production.ini appname 调用它。可以参考pyramid如何实现PShellCommand。

【讨论】:

    【解决方案2】:

    这不是您要寻找的,但我处理此问题的一种方法是使用 Fabric 命令。我的 OSS 应用程序我有一个您运行的结构命令,它为您的应用程序创建一个 .ini 文件,然后,在您调整其中的 sqlalchemy.url 后,您运行一个结构命令,该命令用于 init 的 SA 迁移并运行升级。从那时起,要升级你运行 fab db_upgrade。

    http://bmark.us/install.html

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

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

    是通过 Fabric 接口提供的一组特定于 db 的命令。

    【讨论】:

      猜你喜欢
      • 2017-02-07
      • 2011-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-11
      • 1970-01-01
      • 2014-02-18
      • 1970-01-01
      相关资源
      最近更新 更多