Postgresql 如何从flask应用程序创建新架构
我有一个flask应用程序,我试图通过多个模式为用户实现多租户。当用户注册时,我尝试使用应用程序中的用户名创建一个新模式,并在该模式中创建新的两个表 我可以使用psql控制台在数据库中创建一个新的模式Postgresql 如何从flask应用程序创建新架构,postgresql,flask,flask-sqlalchemy,Postgresql,Flask,Flask Sqlalchemy,我有一个flask应用程序,我试图通过多个模式为用户实现多租户。当用户注册时,我尝试使用应用程序中的用户名创建一个新模式,并在该模式中创建新的两个表 我可以使用psql控制台在数据库中创建一个新的模式 postgres=# CREATE SCHEMA schema_name; 如何从flask应用程序创建模式?我已经实现了同样的目标。我的目标是在Flask中创建一个具有共享DB和单独模式的SaSS应用程序 因此,当用户注册我的高级计划时,我的代码将为我的用户创建一个模式 首先导入所需的模块 f
postgres=# CREATE SCHEMA schema_name;
如何从flask应用程序创建模式?我已经实现了同样的目标。我的目标是在Flask中创建一个具有共享DB和单独模式的SaSS应用程序 因此,当用户注册我的高级计划时,我的代码将为我的用户创建一个模式 首先导入所需的模块
from sqlalchemy import create_engine, MetaData, Table
在用户注册路径中,我添加了以下代码。org\u 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的初学者。所以我不确定什么是正确的方法