2009-09-27 51 views
3

我正在使用SQLAlchemy,并且可以创建我在/model/__init__.py中定义的表格,但是我在/ model目录中找到的其他文件中定义了我的类,表及其映射。使用挂钩和SQLAlchemy创建表格

例如我有一个配置文件类并且其被定义和在/model/profile.py

要创建我运行表映射到的简档表:

贴纸设置应用内development.ini

但我的问题是,我已经在/model/__init__.py中定义的表格已正确创建,但未在/model/profile.py中找到表格定义。如何执行/model/profile.py中的表定义,以便可以创建所有表?

感谢您的帮助!

回答

0

只需在init .py中导入您的其他表格模块,并在其他文件中使用来自models.meta的元数据对象。导入默认的setup_app函数后,将在model.meta中创建元数据对象中的所有表。

0

如果您使用的是声明式风格,请确保使用Base.meta生成表格。

5

我遇到了同样的问题,我的第一个真正的Pylons项目。为我工作的解决方案是这样的:

  1. 定义您profile.py文件表和类
  2. 在你__init__.pydef init_model
  3. 我加入了我所有的映射器定义之后之后添加from profile import *。将它们全部保存在init文件中解决了我在不同文件中定义的表之间关联的一些问题。

此外,我已经使用声明方法创建项目,并且不需要在init文件中定义映射。

+0

甜蜜的圣诞节,谢谢。因为我一直忘记如何让create_all()工作到_work._,所以我一直在使用Pylons的魔鬼。 – 2010-09-21 05:25:03