SqlAlchemy Continuum:未创建历史和事务表
SqlAlchemy Continuum: history and transaction tables are not created
我正在尝试将 sqlalchemy-continuum 版本控制集成到使用 flask-sqlalchemy 的现有应用程序中。
我有一个 __versioned__ = {}
到我想要版本化的模型,例如:
class User(Base):
__versioned__ = {}
__tablename__ = 'user'
我正尝试按如下方式初始化 sqlalchemy-continuum:
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy_continuum import make_versioned
from sqlalchemy.orm import configure_mappers
class SQLOrm():
def __init__(self):
if not hasattr(self, 'orm'):
make_versioned(user_cls=None)
self.orm = SQLAlchemy()
configure_mappers()
# ...
db_orm = SQLOrm()
但是交易table和历史table没有创建。我可以看到 continuum 正在尝试创建记录,但没有 tables:
LINE 1: INSERT INTO transaction (issued_at, id, remote_addr) VALUES ...
^
[SQL: "INSERT INTO transaction (issued_at, id, remote_addr) VALUES (%(issued_at)s, nextval('transaction_id_seq'), %(remote_addr)s) RETURNING transaction.id"] [parameters: {'issued_at': datetime.datetime(2019, 5, 3, 0, 46, 39, 699358), 'remote_addr': None}] (Background on this error at: http://sqlalche.me/e/f405)
我初始化它的方式有问题。知道我做错了什么吗?
您必须先创建 table,然后才能使用 sqlalchemy-continuum
。
您可以通过脚本创建 table,使用 db.create_all()
创建它,或者以其他方式进行 alembic 迁移。
我正在尝试将 sqlalchemy-continuum 版本控制集成到使用 flask-sqlalchemy 的现有应用程序中。
我有一个 __versioned__ = {}
到我想要版本化的模型,例如:
class User(Base):
__versioned__ = {}
__tablename__ = 'user'
我正尝试按如下方式初始化 sqlalchemy-continuum:
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy_continuum import make_versioned
from sqlalchemy.orm import configure_mappers
class SQLOrm():
def __init__(self):
if not hasattr(self, 'orm'):
make_versioned(user_cls=None)
self.orm = SQLAlchemy()
configure_mappers()
# ...
db_orm = SQLOrm()
但是交易table和历史table没有创建。我可以看到 continuum 正在尝试创建记录,但没有 tables:
LINE 1: INSERT INTO transaction (issued_at, id, remote_addr) VALUES ...
^
[SQL: "INSERT INTO transaction (issued_at, id, remote_addr) VALUES (%(issued_at)s, nextval('transaction_id_seq'), %(remote_addr)s) RETURNING transaction.id"] [parameters: {'issued_at': datetime.datetime(2019, 5, 3, 0, 46, 39, 699358), 'remote_addr': None}] (Background on this error at: http://sqlalche.me/e/f405)
我初始化它的方式有问题。知道我做错了什么吗?
您必须先创建 table,然后才能使用 sqlalchemy-continuum
。
您可以通过脚本创建 table,使用 db.create_all()
创建它,或者以其他方式进行 alembic 迁移。