如何处理金字塔中的模型更改

rhy*_*yek 8 pylons sqlalchemy pyramid

在生产阶段,我很可能会考虑迁移功能(有版本等),但是当我处于开发阶段时,我想知道处理models.py中任何更改的最常用方法是什么?该应用程序使用SQLAlchemy进行设置.

我对python web框架比较陌生.我的背景是PHP,最近我完成了一个使用Symfony 1.4的项目,我通常可以这样做symfony doctrine:build --all --and-load,它将负责重建模型类,重新创建数据库,以及加载数据夹具等等.

目前我正在做的只是删除数据库,重新创建它,并使用贴纸来提供应用程序,这需要重新创建表等.

这可能是一个菜鸟问题,但你去了.

rhy*_*yek 2

好吧,没关系。我像这样修改了我的initialize_sql:

def initialize_sql(engine):
    DBSession.configure(bind=engine)
    Base.metadata.bind = engine
    Base.metadata.drop_all(engine) #added this
    Base.metadata.create_all(engine)
    try:
        populate()
    except IntegrityError:
        pass
Run Code Online (Sandbox Code Playgroud)

值得庆幸的是,这只会删除表,而不是整个数据库,因此它运行得很快。