gpt4 book ai didi

postgresql - 如何从 Flask 应用程序创建新模式

转载 作者:行者123 更新时间:2023-12-03 03:37:02 24 4
gpt4 key购买 nike

我有 Flask 应用程序,我正在尝试通过多个模式为用户实现 Multi-Tenancy 。当用户注册时,我尝试使用应用程序中的用户名创建一个新架构,并在该特定架构中创建新的两个表。

我可以使用 psql 控制台在数据库中创建一个新模式

postgres=# CREATE SCHEMA schema_name;

如何从 Flask 应用程序创建架构?

最佳答案

我也取得了同样的成就。我的目标是在 Flask 中创建一个具有共享数据库和独立架构的 SaSS 应用程序。

因此,当用户注册我的高级计划时,我的代码将为我的用户创建一个架构。

首先导入所需的模块。

from sqlalchemy import create_engine, MetaData, Table

在用户注册路径中,我添加了以下代码。 org_id 是一个随机字符串,它是我的架构。另外,我必须在该架构内创建一个 post 表。我还需要将架构名称保存在我的用户表中,这有助于稍后仅在该架构中过滤结果。

# Create schema
engine = create_engine(app.config['SQLALCHEMY_DATABASE_URI'])
if not engine.dialect.has_schema(engine, org_id):
engine.execute('CREATE SCHEMA IF NOT EXISTS %s' % org_id)

# Create table inside this new schema
if engine.dialect.has_schema(engine, org_id):
meta = MetaData()
post = Table('post', meta,
db.Column('id', db.Integer, primary_key=True),
db.Column('body', db.String(140)),
db.Column('timestamp', db.DateTime, index=True, default=datetime.utcnow),
db.Column('user_id', db.Integer),
schema=org_id
)
post.create(engine)

基本上我是 Flask 和 Python 的初学者。所以我不确定什么是正确的方法。

关于postgresql - 如何从 Flask 应用程序创建新模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59099993/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com