Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 如何从flask应用程序创建新架构_Postgresql_Flask_Flask Sqlalchemy - Fatal编程技术网

Postgresql 如何从flask应用程序创建新架构

Postgresql 如何从flask应用程序创建新架构,postgresql,flask,flask-sqlalchemy,Postgresql,Flask,Flask Sqlalchemy,我有一个flask应用程序,我试图通过多个模式为用户实现多租户。当用户注册时,我尝试使用应用程序中的用户名创建一个新模式,并在该模式中创建新的两个表 我可以使用psql控制台在数据库中创建一个新的模式 postgres=# CREATE SCHEMA schema_name; 如何从flask应用程序创建模式?我已经实现了同样的目标。我的目标是在Flask中创建一个具有共享DB和单独模式的SaSS应用程序 因此,当用户注册我的高级计划时,我的代码将为我的用户创建一个模式 首先导入所需的模块 f

我有一个flask应用程序,我试图通过多个模式为用户实现多租户。当用户注册时,我尝试使用应用程序中的用户名创建一个新模式,并在该模式中创建新的两个表

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

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的初学者。所以我不确定什么是正确的方法