Can Alembic Autogenerate column alterations?

后端 未结 2 2031
谎友^
谎友^ 2021-02-02 08:51

I was able to use alembic --autogenerate for when adding / removing columns.

However, when I wanted to modify for example a \"url\" column from 200 charact

相关标签:
2条回答
  • 2021-02-02 09:16

    Looks like I found the answer on reddit's /r/flask.

    http://www.reddit.com/r/flask/comments/1glejl/alembic_autogenerate_column_changes/cale9o0

    Just add "compare_type=True" to context.configure() parameters inside your env.py's "run_migrations_online" function.

        context.configure(
                    connection=connection,
                    target_metadata=target_metadata,
                    compare_type=True
                    )
    
    0 讨论(0)
  • 2021-02-02 09:19

    I also faced this issue, and on alembic 1.0.8 the context.configure in def run_migrations_online() function on migrations/env.py file will be like this:

    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,
        )
    

    Just remove or comment theprocess_revision_directives=process_revision_directives and then add the compare_type=True on that.

    Like this:

    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
        )
    
    0 讨论(0)
提交回复
热议问题