Заставить Alembic обнаруживать изменения типа столбцов и изменять длину строковых полей
Автоматическое обнаружение не обнаруживает изменения типа столбцов по умолчанию. Вы должны включить его, отредактировав файл alembic/env.py.
По умолчанию Alembic не изменяет длину строковых полей, я заметил это после изменения строкового поля:
description = Column(String(150), server_default='')
к..:
description = Column(String(250), server_default='')
Никаких изменений не произошло.
Похоже, что по умолчанию функция определения смены типа столбцов отключена, поэтому вы можете сначала проверить ее, а затем включить ее, добавив в контекст 'comp_type=True'.
Отредактируйте файл alembic/env.py и добавьте 'comp_type=True' в двух местах:
def run_migrations_offline():
...
context.configure(
url=url, target_metadata=target_metadata, literal_binds=True,
compare_type=True # <--- here
)
...
def run_migrations_online():
...
with connectable.connect() as connection:
context.configure(
connection=connection,
target_metadata=target_metadata,
compare_type=True # <--- here
)
...
Теперь изменения типа столбцов будут обнаружены и корректно перенесены.
Ссылки / кредиты
Alembic - migration for String length change
https://eshlox.net/2017/08/06/alembic-migration-for-string-length-change
Auto Generating Migrations
https://alembic.sqlalchemy.org/en/latest/autogenerate.html#what-does-autogenerate-detect-and-what-does-it-not-detect
Подробнее
Alembic SQLAlchemy
Недавний
- График временного ряда с Flask, Bootstrap и Chart.js
- Использование IPv6 с Microk8s
- Использование Ingress для доступа к RabbitMQ на кластере Microk8s
- Простая видеогалерея с Flask, Jinja, Bootstrap и JQuery
- Базовое планирование заданий с помощью APScheduler
- Коммутатор базы данных с HAProxy и HAProxy Runtime API
Большинство просмотренных
- Базовое планирование заданий с помощью APScheduler
- Используя Python pyOpenSSL для проверки SSL-сертификатов, загруженных с хоста
- Предотвращение отправки дубликатов сообщений в удаленную систему
- LSTM многоэтапная оптимизация hyperparameter с Keras Tuner
- Документирование Flask RESTful API с OpenAPI (Swagger) с использованием APISpec
- Тестирование примеров публикации RabbitMQ Pika