作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 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/
我使用以下命令创建了一个只读用户 CREATE ROLE read_only WITH LOGIN PASSWORD 'password' NOSUPERUSER INHERIT NOCREATEDB
我正在为我正在构建的许多应用程序设计 OOP 继承模式。 Javascript 有很多方法可以做到这一点,但我偶然发现了一种我非常喜欢的模式。但现在我正在为分离类和实例的需要而苦苦挣扎。 我有一个名为
我是一名优秀的程序员,十分优秀!