Penggunaan Alembic ================== 1. Masuk ke folder module yang akan diinstall Jalankan perintah berikut ini pada terminal: ```bash $ alembic init alembic $ cd alembic ``` 2. Edit file `env.py` Ubah baris 23 ```python # 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 ``` 3. copy alembic.ini.tpl ke folder alembic menjadi alembic.ini: ```commandline cp ../alembic.ini.tpl alembic.ini ``` 4. edit alembic.ini ```ini sqlalchemy.url = {{db_url}} sqlalchemy.url = dengan url yang akan digunakan ``` 5. Untuk membuat file revisi: ```commandline alembic -c alembic\alembic.ini revision -m "add modules in produk_category" ``` Output: ```commandline Generating C:\project\apps3\pasar\models\alembic\versions\dee47015bc2e_add_modules_in_produk_category.py ... done ``` 6. Edit file revisi tersebut ubah pada bagian upgrade ```python 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))) ``` 7. Run migrastion ```commandline alembic -c alembic\alembic.ini upgrade head ``` Catatan: ```python 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.