Sqlalchemy 手动创建数据库表

1 投票
1 回答
794 浏览
提问于 2025-04-18 01:27

有没有办法在不使用 Base.metadata.create_all() 的情况下创建一个表?我想要类似于 Mytable.create() 这样的功能,它只会创建对应的表。

我想这样做的原因是因为我在做一个多租户的网页应用,使用了 Postgres 的模式(schemas)。我想单独创建 public 表(比如 User 等),以及用户特定的表(每个用户都有一个独立的模式,比如 BlogPost),这些表是在用户注册时创建的。不过,所有的定义都在同一个文件里,而 create_all 似乎会创建文件中定义的所有表。

1 个回答

3

请查看文档,了解如何 创建和删除数据库表

你可以使用 user_table.create(engine) 来创建表,或者如果你在使用声明式扩展,可以用 User.__table__.create(engine)

撰写回答