database_migration/
repository.rs1use crate::error::Error;
2use crate::migration::{Migration, NewMigration, ScriptContent};
3
4pub trait ListMigrations {
5 type Iter: Iterator<Item = Result<Migration, Error>>;
6
7 fn list_all_migrations(&self) -> Result<Self::Iter, Error>;
8}
9
10pub trait ReadScriptContent {
11 fn read_script_content(&self, migration: &Migration) -> Result<ScriptContent, Error>;
12
13 fn read_script_content_for_migrations(
14 &self,
15 migrations: &[Migration],
16 ) -> Result<Vec<ScriptContent>, Error> {
17 migrations
18 .iter()
19 .map(|mig| self.read_script_content(mig))
20 .collect()
21 }
22}
23
24pub trait CreateNewMigration {
25 fn create_new_migration(&self, new_migration: NewMigration) -> Result<Migration, Error>;
26}