使用Pylons和SQLAlchemy创建表格

3 投票
3 回答
1169 浏览
提问于 2025-04-15 14:37

我正在使用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项目时也遇到了同样的问题。对我有效的解决办法是这样的:

  1. 在你的profile.py文件中定义表和类。
  2. 在你的__init__.py文件中,在def init_model之后添加from profile import *
  3. 然后我把所有的映射定义都放在后面。把它们都放在init文件里解决了我在不同文件中定义的表之间的一些问题。

另外,我后来用声明式方法创建项目时,就不需要在init文件中定义映射了。

撰写回答