SQLAlchemy: таблица для хранения версии схемы - PullRequest
0 голосов
/ 29 мая 2020

Я хочу отслеживать какую-то версию схемы в своей базе данных, чтобы при необходимости перенести базы данных позже. Я использую sqlite.

В чистом sqlite я мог бы добиться этого, поместив следующее в начало сценария инициализации схемы базы данных:

CREATE TABLE IF NOT EXISTS InternalMeta (
    id  INTEGER PRIMARY KEY NOT NULL UNIQUE DEFAULT 1,
    version TEXT
);
INSERT OR REPLACE INTO DatabaseMeta(version)
VALUES ('0.14.4');

Каким будет лучший способ реализации этого с помощью SQLAlchemy? Дословный перевод вышеизложенного может выглядеть так ...

Base = declarative_base()

class InternalMeta(Base):
    __tablename__ = "InternalMeta"
    id = Column(Integer, primary_key=True, default=1)
    version = Column(String, default="0.14.4")

... Тогда в другом месте:

session.merge(InternalMeta())
session.commit()

Есть ли лучший способ сделать это?

...