« ^ »
[WIP]

SQLAlchemy用のマイグレーションツールalembicを使う

所要時間: 約 1分

初期化

alembic init alembic
 Creating directory /Users/sximada/ng2/src/github.com/TakesxiSximada/TIL/sqlalchemy/alembic/alembic ... done
 Creating directory /Users/sximada/ng2/src/github.com/TakesxiSximada/TIL/sqlalchemy/alembic/alembic/versions ... done
 Generating /Users/sximada/ng2/src/github.com/TakesxiSximada/TIL/sqlalchemy/alembic/alembic.ini ... done
 Generating /Users/sximada/ng2/src/github.com/TakesxiSximada/TIL/sqlalchemy/alembic/alembic/env.py ... done
 Generating /Users/sximada/ng2/src/github.com/TakesxiSximada/TIL/sqlalchemy/alembic/alembic/README ... done
 Generating /Users/sximada/ng2/src/github.com/TakesxiSximada/TIL/sqlalchemy/alembic/alembic/script.py.mako ... done
 Please edit configuration/connection/logging settings in '/Users/sximada/ng2/src/github.com/TakesxiSximada/TIL/sqlalchemy/alembic/alembic.ini' before proceeding.

ディレクトリ構成

.
├── alembic
│   ├── README
│   ├── env.py
│   ├── script.py.mako
│   └── versions
├── alembic.ini
ディレクトリ構成

マイグレーションファイルの作成

alembic revision -m "init"
 Generating /Users/sximada/ng2/src/github.com/TakesxiSximada/TIL/sqlalchemy/alembic/alembic/versions/f21481e62711_init.py ... done
新しいマイグレーションファイルを作成する
"""init

Revision ID: f21481e62711
Revises: 
Create Date: 2017-01-24 15:31:47.764269

"""
from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision = 'f21481e62711'
down_revision = None
branch_labels = None
depends_on = None


def upgrade():
    pass


def downgrade():
    pass

マイグレーションの導入で気をつけること

  • 途中から導入できる
  • データが消えるなどの事故が発生しない
  • データベースに追従できる
  • アプリケーション開発を疎外しない