Я хочу отслеживать какую-то версию схемы в своей базе данных, чтобы при необходимости перенести базы данных позже. Я использую 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()
Есть ли лучший способ сделать это?