Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 10, 2016 11:41:07

dima2881
Зарегистрирован: 2016-01-09
Сообщения: 39
Репутация: +  0  -
Профиль   Отправить e-mail  

SQLAlchemy миграции

Использую SQLAlchemy, подскажите, что использовать для миграций. Как я понял мне подходит alembic, но может есть, что-то более новое и лучше работающие.

Офлайн

#2 Ноя. 10, 2016 11:43:01

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

SQLAlchemy миграции

Алембик от создателей алхимии. Лучше вряд-ли найти получится. Да и какие конкретно улучшения Вам нужны. Еще есть flask-migrate поверх алембика. Там проще, так как не нужно ничего прописывать в файлах, а можно обойтись одним конфигом, но тащить за собой эту зависимость ради лишних 4-5 строк - по моему это перебор

Офлайн

#3 Ноя. 10, 2016 11:45:05

dima2881
Зарегистрирован: 2016-01-09
Сообщения: 39
Репутация: +  0  -
Профиль   Отправить e-mail  

SQLAlchemy миграции

А можете пожалуйста уточнить, что нужно допрописывать в файлах миграции, при использовании alembic?
Вы о том коде, который нужно написать в функции upgrade?

Отредактировано dima2881 (Ноя. 10, 2016 11:56:05)

Офлайн

#4 Ноя. 10, 2016 18:39:46

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

SQLAlchemy миграции

Нет. Когда Вы делаете init, то создаются папки и файлы для alembic.
Вам нужно поправить файл alembic.ini. Вас интересует вот эта вот строка (что с ней делать, догадаетесь сами)

sqlalchemy.url = driver://user:pass@localhost/dbname

И в файле your_alembic_name/env.py поправить

 #
# add your model's MetaData object here
# for 'autogenerate' support
# from myapp import mymodel
# target_metadata = mymodel.Base.metadata
target_metadata = None

на что-то типа

 #
from myapp.mymodel import Base
target_metadata = Base.metadata

Фактически во втором файле Вам нужно прописать путь к метадате Ваших моделей.

И можно смело делать все, что Вашей душе угодно…

Отредактировано 4kpt_IV (Ноя. 10, 2016 18:40:15)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version