Penggunaan Alembic
-
Masuk ke folder module yang akan diinstall
Jalankan perintah berikut ini pada terminal:
$ alembic init alembic $ cd alembic
-
Edit file
env.py
Ubah baris 23
# target_metadata = None from opensipkd.base.models import Base target_metadata = Base.metadata version_table = "alembic_pasar_version" # gunakan sesuai dengan dama module biar gak tumpang tindih
-
copy alembic.ini.tpl ke folder alembic menjadi alembic.ini:
cp ../alembic.ini.tpl alembic.ini
-
edit alembic.ini
sqlalchemy.url = {{db_url}} sqlalchemy.url = dengan url yang akan digunakan
-
Untuk membuat file revisi:
alembic -c alembic\alembic.ini revision -m "add modules in produk_category"
Output:
Generating C:\project\apps3\pasar\models\alembic\versions\dee47015bc2e_add_modules_in_produk_category.py ... done
-
Edit file revisi tersebut ubah pada bagian upgrade
def upgrade(): op.add_column('produk_kategori', sa.Column('moduels', sa.String(64))) def downgrade(): op.drop_column('produk_kategori', sa.Column('moduels', sa.String(64)))
-
Run migrastion
alembic -c alembic\alembic.ini upgrade head
Catatan:
def upgrade():
op.create_table(
'account',
sa.Column('id', sa.Integer, primary_key=True),
sa.Column('name', sa.String(50), nullable=False),
sa.Column('description', sa.Unicode(200)),
)
def downgrade():
op.drop_table('account')
Ulangi langkah 5 s.d 7 Untuk membuat upgrade versi yang lainnya
Alembic ini akan secara otomatis dijalankan saat initializedb
jadi harus hati2
saat di production
jangan sampai ada data sample yang ke import lagi di data
live.