/sqlalchemy-alembic-poc

SQLAlchemy + Alembic

Primary LanguagePython

SQLAlchemy + Alembic

Project Setup

$ python3 -m venv .venv
$ source .venv/bin/activate
$ pip install -r requirements.txt

Doc

https://docs.sqlalchemy.org/en/14/index.html https://docs.sqlalchemy.org/en/14/orm/quickstart.html https://docs.sqlalchemy.org/en/14/orm/queryguide.html https://docs.sqlalchemy.org/en/14/orm/mapping_styles.html

https://alembic.sqlalchemy.org/en/latest/tutorial.html https://alembic.sqlalchemy.org/en/latest/autogenerate.html

Tabela de Controle

Tabela Coluna
alembic_version version_num

Criação de um novo Model

  1. Criar classe em models/ herdendo de models/base.py.
  2. Adicionar a nova classe no models/__init__.py.

Criar uma Revisão a partir do Model

$ alembic revision --autogenerate

Usando o Makefile:

$ make db-migrate

Upgrade - Atualizar o ambiente

Tudo desde a última alteração

$ alembic upgrade head

Usando o Makefile:

$ make db-upgrade

Upgrade parcial

Se a revisão for "ae1027a6acf" pode ser rodado o comando:

$ alembic upgrade ae1

Upgrade parcial (relativo)

$ alembic upgrade +2

Downgrade - Rollback no ambiente (desde o começo)

$ alembic downgrade base

Usando o Makefile:

$ make db-downgrade

Downgrade - Rollback no ambiente (somente da última revisão)

$ alembic downgrade -1

Usando o Makefile:

$ make db-downgrade-last

Mostrar os comandos SQLs (Offline Mode)

$ alembic upgrade head --sql
$ alembic downgrade head:base --sql