pub trait DbAdaptor {
// Required methods
fn init_up_sql(&self) -> &'static str;
fn init_down_sql(&self) -> &'static str;
fn load_migrations(&mut self) -> Result<Vec<Migration>>;
fn run_up_migration(&mut self, migration: &Migration) -> Result<()>;
fn run_down_migration(&mut self, migration: &Migration) -> Result<()>;
// Provided method
fn run_migration_plan(&mut self, plan: &[(Step, &Migration)]) -> Result<()> { ... }
}