در حوزه ی فریمورک Alembic یک مهاجرت برای پایگاه داده ها توسط یک اسکرپیت انجام می پذیرد که می تواند شامل دو تابع باشد. این دو تابع عبارتند از upgrade() و downgrade() . 

در حقیقت تابع upgrade() تغییراتی که روی پایگاه داده ایجاد شده است را انجام می دهد‌ ( ذخیره می کند ) و تابع downgrade() این تغییرات را از بین می برد. دقت کنید که با استفاده از این دو تابع درون اسکریپت، امکان بازگشت بر هر یک از مراحل قبل ( تاریخچه پایگاه داده ) برای ما میسر خواهد بود. 

مهاجرت در فریمورک Alembic به دو صورت خودکار و دستی امکان پذیر می باشد. برای حالت دستی باید اسکریپت های خود را ایجاد کرده و با استفاده از آنها تغییرات ایجاد شده در مدل و بروز بودن آن نسبت به جداول پایگاه داده را مورد بررسی قرار دهیم اما در حالت خودکار با استفاده از یک دستور دو تابع لازم را ایجاد و فقط از آنها استفاده می کنیم. 

دستور migrate در مثال زیر دو تابع مورد نظر را ایجاد خواهد کرد :