SqlAlchemy Continuum: таблицы истории и транзакций не создаются - PullRequest
0 голосов
/ 03 мая 2019

Я пытаюсь интегрировать sqlalchemy-континуум контроля версий в существующее приложение, которое использует flask-sqlalchemy.

У меня есть __versioned__ = {} для моделей, которые я хочу иметь версионными, например ::1006*

class User(Base):
    __versioned__ = {}
    __tablename__ = 'user'

И я пытаюсь инициализировать sqlalchemy-континуум следующим образом:

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()

Но таблица транзакций и таблицы истории не создаются. Я вижу, что континуум пытается создать записи, но нет таблиц:

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)

Что-то не так в том, как я это инициализирую. Есть идеи, что я делаю не так?

1 Ответ

0 голосов
/ 11 июня 2019

Вы должны создать таблицу перед использованием sqlalchemy-continuum.Вы можете создать таблицу с помощью скрипта, создать ее с помощью db.create_all() или иным образом выполнить миграцию alembic.

...