Archived
1
0
Fork 0
This repository has been archived on 2024-07-25. You can view files and clone it, but cannot push or open issues or pull requests.
migra/migra-cli/src/commands/downgrade.rs

25 lines
752 B
Rust
Raw Normal View History

use crate::config::Config;
2021-02-13 23:44:41 +03:00
use crate::database::DatabaseConnection;
use crate::migration::Downgrade;
use crate::StdResult;
2021-02-13 23:44:41 +03:00
use std::convert::TryFrom;
pub(crate) fn downgrade_applied_migrations(config: Config) -> StdResult<()> {
2021-02-13 23:44:41 +03:00
let mut connection = DatabaseConnection::try_from(&config)?;
2021-02-13 23:44:41 +03:00
let applied_migrations = connection.applied_migration_names()?;
let migrations = config.migrations()?;
if let Some(first_applied_migration) = applied_migrations.first() {
if let Some(migration) = migrations
.iter()
.find(|m| m.name() == first_applied_migration)
{
println!("downgrade {}...", migration.name());
2021-02-13 23:44:41 +03:00
migration.downgrade(&mut connection)?;
}
}
Ok(())
}