kes*_*kes 7 python django sqlalchemy web-frameworks pyramid
我在Pyramid + SQLAlchemy + URL Dispatch Wiki Tutorial中注意到,在运行应用程序时,数据库在main函数中初始化.
def main(global_config, **settings):
""" This function returns a WSGI application.
"""
engine = engine_from_config(settings, 'sqlalchemy.')
initialize_sql(engine)
# -- and so on ---
Run Code Online (Sandbox Code Playgroud)
其中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
Run Code Online (Sandbox Code Playgroud)
它基本上创建了所有表(如果它们不存在)并用一些初始值填充它.很容易理解,但......
这只是一个演示小应用程序的教程,因此通常在生产中完成的方式可能不同(或不是......).这让我想到了我的问题:
当使用Pyramid和SQLAlchemy时,它是生产中用于以这种方式初始化的数据库的典型模式,还是通常使用manage syncdb与Django中的命令等效的东西来手动调用?
Mic*_*kel 10
由于Pyramid不对数据模型做任何假设,因此它不会尝试为您管理它们.这完全取决于您以及您正在使用的具体数据层.
关于使用SQLAlchemy,可以使用SQLAlchemy-migrate软件包管理迁移.设置此选项后,它将为您提供manage执行迁移的命令.
| 归档时间: |
|
| 查看次数: |
1170 次 |
| 最近记录: |