2011-03-31 54 views
8

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

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

目前我所做的只是放下数据库,重新创建数据库,然后使用贴纸重新创建表格等。

这可能是一个noob问题,但你去。

回答

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 

谢天谢地,这只会删除表,而不是整个数据库,因此它运行速度很快。

4