Задать вопрос
Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (16)

Лучшие ответы пользователя

Все ответы (42)
  • Flask-Migrate не видит изменений в БД?

    @domanskiy
    Попробуй
    stamp head
    migrate
    upgrade

    Более радикальный вариант.
    В доках указано что compare_type по дефолту False. Изза этого Auto Generating Migrations не "видит" изменений в типах колонок.
    Как я это победил.

    В папке migrations в файле env.py меняем функцию def run_migrations_online():
    Вариант 1
    compare_type = True
    with connectable.connect() as connection:
            context.configure(
                connection=connection,
                target_metadata=target_metadata,
                process_revision_directives=process_revision_directives,
                **current_app.extensions['migrate'].configure_args,
                # compare_type=True
                compare_type=my_compare_type


    Вариант 2
    Добавляем к параметру функцию my_compare_type в run_migrations_online

    def my_compare_type(context, inspected_column,
                            metadata_column, inspected_type, metadata_type):
            # return False if the metadata_type is the same as the inspected_type
            # or None to allow the default implementation to compare these
            # types. a return value of True means the two types do not
            # match and should result in a type change operation.
            return None
    
    
        with connectable.connect() as connection:
            context.configure(
                connection=connection,
                target_metadata=target_metadata,
                process_revision_directives=process_revision_directives,
                **current_app.extensions['migrate'].configure_args,
                compare_type=my_compare_type
    
            )


    Далее
    manage.py db migrate -m "Initial migration."
    Затем manage.py db upgrade
    Ответ написан
    Комментировать

Лучшие вопросы пользователя

Все вопросы (56)