SQLAlchemy: как добавить столбец в существующую таблицу? - PullRequest
1 голос
/ 21 марта 2019

Я пытаюсь добавить поле или столбец в существующую таблицу, используя SQLAchemy.

Ниже приведен класс таблицы

class ReleaseVersion(Base):

    __tablename__ = 'versions'

    id = Column(Integer, primary_key=True, autoincrement=True)
    release = Column(String(128), nullable=False, unique=True)


    def __init__(self,release, id=None):

        if(id):
            self.id = id

        self.release = release

Я инициализировал таблицу, используя следующую строку

myDB.ReleaseVersion.__table__.create(bind=self.engine, checkfirst=True)

После использования БД в течение некоторого времени мне нужно добавить логическое поле is_currentversion, сохраняя при этом все существующее содержимое таблицы, но я не совсем уверен, как это сделать.

Должен ли я вручную создать поле для таблицы обновления класса?Либо добавьте поле в класс таблицы и добавьте столбец, если его нет в функции инициализации?

1 Ответ

2 голосов
/ 23 марта 2019

То, что вы ищете, называется миграцией базы данных.Использование чего-то вроде alembic с Flask-Migrate позволяет добавлять базы данных без очистки данных.Alembic также имеет функцию отмены обновлений базы данных, если это необходимо.

Существует хорошее руководство по настройке alembic на pythoncentral

И отличное видео Pretty Printed для Flask-Migrate.

...