繁体   English   中英

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

[英]flask-sqlalchemy - PostgreSQL - Define specific schema for table?

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

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

当您定义模型类时,请使用:

__table_args__ = {"schema":"schema_name"}

也许它会为其他人节省一些狩猎时间。

供以后参考:

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'
    ...

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

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'}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM