fix migration, add logging (#1674)

* fix migration, add logging

* change stack overflow to runtime error
This commit is contained in:
Aiden McClelland
2022-07-20 16:00:25 -06:00
committed by GitHub
parent 5fa743755d
commit 40d446ba32
4 changed files with 25 additions and 3 deletions

View File

@@ -97,10 +97,18 @@ where
receipts: &InitReceipts,
) -> Result<(), Error> {
let previous = Self::Previous::new();
if version.semver() != previous.semver() {
if version.semver() < previous.semver() {
previous
.migrate_from_unchecked(version, db, receipts)
.await?;
} else if version.semver() > previous.semver() {
return Err(Error::new(
eyre!(
"NO PATH FROM {}, THIS IS LIKELY A MISTAKE IN THE VERSION DEFINITION",
version.semver()
),
crate::ErrorKind::MigrationFailed,
));
}
tracing::info!("{} -> {}", previous.semver(), self.semver(),);
self.up(db).await?;
@@ -117,10 +125,18 @@ where
tracing::info!("{} -> {}", self.semver(), previous.semver(),);
self.down(db).await?;
previous.commit(db, receipts).await?;
if version.semver() != previous.semver() {
if version.semver() < previous.semver() {
previous
.rollback_to_unchecked(version, db, receipts)
.await?;
} else if version.semver() > previous.semver() {
return Err(Error::new(
eyre!(
"NO PATH TO {}, THIS IS LIKELY A MISTAKE IN THE VERSION DEFINITION",
version.semver()
),
crate::ErrorKind::MigrationFailed,
));
}
Ok(())
}