Public
Snippet $15 authored by Solo Group

Menggunakan alembic

Edited
readme.md

Penggunaan Alembic

  1. Masuk ke folder module yang akan diinstall

    Jalankan perintah berikut ini pada terminal:

    $ alembic init alembic
    $ cd alembic
    
  2. 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
    
  3. copy alembic.ini.tpl ke folder alembic menjadi alembic.ini:

    cp ../alembic.ini.tpl alembic.ini
    
  4. edit alembic.ini

    sqlalchemy.url = {{db_url}} 
    sqlalchemy.url = dengan url yang akan digunakan
    
    
  5. 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
    
  6. 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)))
    
  7. 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.