使用Pylons和SQLAlchemy创建表格
我正在使用SQLAlchemy,我可以在/model/__init__.py文件中创建我定义的表,但我在/model目录下的其他文件中定义了我的类、表和它们的映射。
举个例子,我有一个个人资料类和一个个人资料表,它们是在/model/profile.py文件中定义和映射的。
为了创建这些表,我运行了:
paster setup-app development.ini
但我的问题是,在/model/__init__.py中定义的表能够正确创建,但在/model/profile.py中找到的表定义却没有被创建。我该如何执行/model/profile.py中的表定义,以便创建我所有的表呢?
谢谢你的帮助!
3 个回答
0
只需要在你的 init.py 文件中导入其他表的模块,然后在其他文件中使用来自 models.meta 的 metadata 对象。Pylons 默认的 setup_app 函数会在导入这个对象后,创建 metadata 对象中所有找到的表。
0
如果你在使用声明式风格,记得要用 Base.meta 来生成表格。
5
我在做第一个真正的Pylons项目时也遇到了同样的问题。对我有效的解决办法是这样的:
- 在你的profile.py文件中定义表和类。
- 在你的
__init__.py
文件中,在def init_model
之后添加from profile import *
。 - 然后我把所有的映射定义都放在后面。把它们都放在init文件里解决了我在不同文件中定义的表之间的一些问题。
另外,我后来用声明式方法创建项目时,就不需要在init文件中定义映射了。