Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sqlalchemy 如何处理金字塔中的模型更改_Sqlalchemy_Pylons_Pyramid - Fatal编程技术网

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

Sqlalchemy 如何处理金字塔中的模型更改,sqlalchemy,pylons,pyramid,Sqlalchemy,Pylons,Pyramid,在生产阶段,我很可能会研究迁移功能(使用版本等),但在开发阶段,我想知道处理models.py中任何更改的最常见方法是什么?该应用程序是用SQLAlchemy设置的 我对python web框架比较陌生。我的背景是PHP,最近我完成了一个使用Symfony 1.4的项目,在这个项目中,我通常只需要做Symfony条令:build--all--and load,这将负责重建模型类、重新创建数据库和加载数据装置,以及其他一些事情 目前,我正在做的只是删除数据库,重新创建它,然后用paster提供应用

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

我对python web框架比较陌生。我的背景是PHP,最近我完成了一个使用Symfony 1.4的项目,在这个项目中,我通常只需要做
Symfony条令:build--all--and load
,这将负责重建模型类、重新创建数据库和加载数据装置,以及其他一些事情

目前,我正在做的只是删除数据库,重新创建它,然后用paster提供应用程序,paster负责重新创建表等等


这可能是一个很难回答的问题,但问题来了。

好吧,没关系。我修改了我的初始化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

谢天谢地,这只会删除表,而不是整个数据库,所以它运行得很快。

我现在使用的是sql alchemy migrate,非常简单

这里有一个教程:

以及包含更多信息和教程的pdf:

它易于安装,可以对数据库进行更改(升级或降级) 以炼金术的方式