python - Pyramid 相当于 Django 的 syncdb 命令?

标签 python django sqlalchemy web-frameworks pyramid

我在 Pyramid + SQLAlchemy + URL Dispatch Wiki Tutorial 中注意到当应用程序运行时,数据库在主函数中初始化。

def main(global_config, **settings):
    """ This function returns a WSGI application.
    """
    engine = engine_from_config(settings, 'sqlalchemy.')
    initialize_sql(engine)
    # -- and so on ---

其中initialize_sql定义如下:

def initialize_sql(engine):
    DBSession.configure(bind=engine)
    Base.metadata.bind = engine
    Base.metadata.create_all(engine)
    try:
        session = DBSession()
        page = Page('FrontPage', 'initial data')
        session.add(page)
        transaction.commit()
    except IntegrityError:
        # already created
        pass

这实际上创建了所有表(如果它们不存在)并用一些初始值填充它。很容易理解,但是......

这只是一个演示小型应用程序的教程,因此它在生产中的典型完成方式可能会有所不同(或不会...)。这引出了我的问题:

当将 Pyramid 与 SQLAlchemy 一起使用时,以这种方式初始化数据库是生产中的典型模式,还是通常使用与调用的 Django 中的 manage syncdb 命令等效的东西手动?

最佳答案

由于 Pyramid 不对数据模型做出任何假设,因此它不会尝试为您管理它们。这完全取决于您以及您使用的具体数据层。

关于使用 SQLAlchemy,可以使用 SQLAlchemy-migrate 包管理迁移。当您设置它时,它会为您提供一个管理命令来执行迁移。

关于python - Pyramid 相当于 Django 的 syncdb 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6754465/

相关文章:

python - Matplotlib-Imported PNG 不会在 3D 绘图中显示

python - 如何在Python中注入(inject)URL查询字符串参数?

javascript - 当数据库更改时使用 Ajax、jquery 更新 html 列和表。 Django

python - 使用 SQLAlchemy 删除和读取索引

python - 何时使用 SQLAlchemy 以及何时使用 Pandas 进行数据操作

python - 正则表达式 - Python - 删除前导空格

python - 基于Flask的REST API : marshmallow vs flask-restful

django - 将 {% url %} 传递给 Django 中的自定义模板标签

python - 查询 django 中的多位字段列表返回的结果比预期多

Python - 缩进返回语句