Как применить include_name (alembic) для миграции отдельной таблицы?

Не могу понять как применить опцию include_name у alembic для sqlalchemy

Как я понял её можно использовать для обновления конкретных таблиц что мне и нужно. Суть следующая. У меня есть несколько таблиц и я добавил в них пару новых полей, но обновить нужно пока только одну таблицу. Если запускать алембик в стандартном режиме типа

alembic revision --autogenerate -m "Comment"

То он генерирует миграцию для всех таблиц.

В документации есть опция которая вроде как позволяет указать нужные таблицы для обновления, но не понимаю как её применить https://alembic.sqlalchemy.org/en/latest/api/runtime.html#alembic.runtime.environment.EnvironmentContext.configure.params.include_name

К примеру есть следующие таблицы и мне нужно создать миграцию только для таблицы User

        __tablename__ = 'user'
    
        id = Column(Integer, primary_key=True)
        name = Column(String)
        fullname = Column(String)
        nickname = Column(String)
        activity = Boolean(default=False)   # Новое поле которое нужно учесть в миграции
        
    class Article(Base):                    # Не учитывать эту таблицу при новой миграции
        __tablename__ = 'articles'
        
        id = Column(Integer)
        title = Column(String)
        text = Column(String)
        user_id = Column(Integer, ForeignKey('user.id'))```

Ответы (1 шт):

Автор решения: Alex

Решение

In alembic/env.py or migrations/env.py:
def include_object(object, name, type_, reflected, compare_to):
    if (type_ == "table" and object.schema == "exclude_from_migrations"):
        return False
    else:
       return True

def run_migrations_online():
   ....
   context.configure(connection=connection,
                  target_metadata=target_metadata,
                  include_object = include_object,
                  process_revision_directives=process_revision_directives,
                  **current_app.extensions['migrate'].configure_args)
   ...

В таблицах

class MyClass(db.Model):
__tablename__='my_class'
__table_args__ = {"schema": "exclude_from_migrations"}
→ Ссылка