【发布时间】:2011-10-08 22:16:19
【问题描述】:
我在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 命令等效的东西?
【问题讨论】:
标签: python django sqlalchemy web-frameworks pyramid