Add abstraction for migrations