首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >flask-sqlalchemy - PostgreSQL -为表定义特定模式?

flask-sqlalchemy - PostgreSQL -为表定义特定模式?
EN

Stack Overflow用户
提问于 2012-08-09 06:11:36
回答 3查看 12K关注 0票数 27

我想使用flask-sqlalchemy为'model‘定义一个特定的模式。当您在sqlalchemy本身中创建表对象时,它有一个要作为模式名传递的参数。

我如何在flask-sqlalchemy中做到这一点?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-09 10:03:13

在定义模型类时,请使用:

代码语言:javascript
复制
__table_args__ = {"schema":"schema_name"}

也许这会让其他人省去一些打猎的时间。

票数 63
EN

Stack Overflow用户

发布于 2015-06-26 06:59:41

对于将来的参考:

代码语言:javascript
复制
db = flask.ext.sqlalchemy.SQLAlchemy(app)

app.config['SQLALCHEMY_DATABASE_URI'] = 'your_default_schema_db_uri'
app.config['SQLALCHEMY_BINDS'] = {'other_schema': 'your_other_db_uri'}

class TableA(db.Model):
    # This belongs to Default schema, it doesn't need specify __bind_key__
    ...

class TableB(db.Model):
      # This belongs to other_schema
    __bind_key__ = 'other_schema'
    ...
票数 2
EN

Stack Overflow用户

发布于 2020-08-03 08:44:54

这就是我怎么做的,但如果可能的话,我也在寻找一种更好的方法-

代码语言:javascript
复制
db = flask.ext.sqlalchemy.SQLAlchemy(app)

app.config['SQLALCHEMY_DATABASE_URI'] = 'your_default_schema_db_uri'

class Entity():
    __table_args__ = {
        'schema': 'schema_name'
    }
    # common columns below

class TableA(Entity, db.Model):
    # This belongs to Default schema, it doesn't need specify __bind_key__
    __table_args__ = {'schema' : Entity.__table_args__["schema"], 
                      'comment': 'TableA'}

class TableB(Entity, db.Model):
      # This belongs to other_schema
    __table_args__ = {'schema' : Entity.__table_args__["schema"], 
                      'comment': 'TableA'}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11873959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档