У меня есть база данных sqlite3
, доступ к которой осуществляется с помощью SQLAlchemy
в python3
. Я хочу добавить новый и удалить старый столбец с помощью инструмента миграции базы данных alembic
. Простой пример:
class Model(_Base):
__tablename__ = 'Model'
_oid = Column('oid', sa.Integer, primary_key=True)
_number_int = sa.Column('number_int', sa.Integer)
Должно быть после миграции так:
class Model(_Base):
__tablename__ = 'Model'
_oid = Column('oid', sa.Integer, primary_key=True)
_number_str = sa.Column('number_str', sa.String(length=30))
Важным моментом здесь является то, что в _number_int
есть данные, которые должны быть преобразованы в _number_str
следующим образом:
number_conv = {1: 'one', 2: 'two', 3: 'three'}
_number_str = number_conv[_number_int]
Есть ли перегонный куб, чтобы позаботиться об этом? Это означает, что сама alembic позаботится о таких случаях в своей концепции/дизайне? Я хочу знать, могу ли я использовать для этого инструменты перегонного куба или мне нужно сделать для этого свой собственный дополнительный код.
Конечно, исходные данные немного сложнее преобразовать. Это просто пример здесь.