Какие использовал миграции в SQLAlchemy
Python
Middle
Без компании
Какие использовал миграции в SQLAlchemy
Ответы
В SQLAlchemy миграции обычно выполняются с помощью **Alembic** — инструмента для управления изменениями схемы БД.
**Основные команды Alembic:**
- `alembic init migrations` — создает папку с конфигурацией.
- `alembic revision --autogenerate -m "message"` — генерирует миграцию на основе изменений моделей.
- `alembic upgrade head` — применяет миграции.
- `alembic downgrade -1` — откатывает последнюю миграцию.
**Пример:**
```
# Модель до изменения
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
# После добавления поля `email`
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
email = Column(String, nullable=True)
```
Затем:
```
alembic revision --autogenerate -m "Add email to User"
alembic upgrade head
```
**Нюансы:**
- `autogenerate` не всегда корректно определяет изменения (например, переименование столбцов).
- Миграции могут включать **сырой SQL** для сложных операций.
- Важно тестировать миграции на тестовой БД перед продакшеном.