2014-04-05 55 views
0

有没有办法在不使用Base.metadata.create_all()的情况下创建表。我正在寻找像Mytable.create()这应该只创建其相应的表。Sqlalchemy手动创建数据库表

我想这样做的原因是因为我为多租户Web应用程序使用Postgres模式,并且我想分别创建public表(User等),并且特定于用户(每个表具有单独的模式,例如,Blog,Post)当用户注册时。然而所有的定义都在同一个文件中,看起来create_all创建了文件中定义的所有表。

回答

2

请阅读文档Creating and Dropping Database Tables

您可以做user_table.create(engine),或者如果您使用声明性扩展名:User.__table__.create(engine)

+0

认为只适用于较低级别的sql表api。 – Jatajuuf

+0

你说得对,只有我们能够为每个模型访问这些“表”。 – van