我有两个共享相同名称但位于不同数据库中的表:
class Lcn(db.Model):
__tablename__ = 'lcn'
class LcnRemote(db.Model):
__bind_key__ = 'remote'
__tablename__ = 'lcn'
看来SQLAlchemy不喜欢那样。上面写着:
sqlalchemy.exc.InvalidRequestError: Table 'lcn' is already defined for this MetaData instance. Specify 'extend_existing=True' to redefine options and columns on an existing Table object.
有没有一种方法可以在不需要重命名我的表的情况下解决这个问题?在
对同名的不同数据库使用单独的declarative base classes,以防止共享SQLAlchemy元数据。您必须创建两个
flask_sqlalchemy.SQLAlchemy()
实例:这是Flask SQLAlchemy的一个限制,它应该允许您为每个绑定创建声明性的基。当前
SQLAlchemy()
类的设计方式将其限制为一个这样的基;它通过它在一开始生成的db.Model
类代理各种SQLAlchemy元数据调用。通过创建flask_sqlalchemy.SQLAlchemy()
的两个实例,可以解决这个问题。在相关问题 更多 >
编程相关推荐