summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/db/mod.rs62
1 files changed, 1 insertions, 61 deletions
diff --git a/src/db/mod.rs b/src/db/mod.rs
index 99b8986..9a74dcb 100644
--- a/src/db/mod.rs
+++ b/src/db/mod.rs
@@ -2,10 +2,9 @@ mod backup;
use std::str::FromStr;
-use hex_literal::hex;
use sqlx::{
error::{DatabaseError, ErrorKind},
- migrate::{Migrate as _, MigrateDatabase as _},
+ migrate::MigrateDatabase as _,
sqlite::{Sqlite, SqliteConnectOptions, SqlitePool, SqlitePoolOptions},
};
@@ -16,19 +15,6 @@ pub async fn prepare(url: &str, backup_url: &str) -> Result<SqlitePool, Error> {
let pool = create(url).await?;
- // First migration of original migration series, from commit
- // 9bd6d9862b1c243def02200bca2cfbf578ad2a2f or earlier.
- reject_migration(&pool, "20240831024047", "login", &hex!("9949D238C4099295EC4BEE734BFDA8D87513B2973DFB895352A11AB01DD46CB95314B7F1B3431B77E3444A165FE3DC28")).await?;
-
- // Original version of this migration was buggy, but didn't require a
- // database reset to fix.
- migration_replaced(
- &pool,
- "20241009031441",
- &hex!("4B5873397C8BA9CFAF49172EE6DE455CD643A27BD71032ECD8EFA7684362FE620A8F6B27D493AF8D9A570C38CC1A6416"),
- &hex!("E5CDEDA38F2BCE4C24A45E58D3BDE3FF2C30B1431C3B01870BB9DEB142E5A200B9C850C3C72A45D352C15D8DB51B8467"),
- ).await?;
-
let backup_pool = create(backup_url).await?;
backup::Backup::from(&pool)
.to(&backup_pool)
@@ -58,50 +44,6 @@ async fn create(database_url: &str) -> sqlx::Result<SqlitePool> {
Ok(pool)
}
-async fn reject_migration(
- pool: &SqlitePool,
- version: &str,
- description: &str,
- checksum: &[u8],
-) -> Result<(), Error> {
- let mut conn = pool.acquire().await?;
- conn.ensure_migrations_table().await?;
- let applied = conn.list_applied_migrations().await?;
-
- for migration in applied {
- if migration.checksum == checksum {
- return Err(Error::Rejected(version.into(), description.into()));
- }
- }
-
- Ok(())
-}
-
-async fn migration_replaced(
- pool: &SqlitePool,
- version: &str,
- original: &[u8],
- replacement: &[u8],
-) -> Result<(), sqlx::Error> {
- let mut conn = pool.acquire().await?;
- conn.ensure_migrations_table().await?;
- sqlx::query!(
- r#"
- update _sqlx_migrations
- set checksum = $1
- where version = $2
- and checksum = $3
- "#,
- replacement,
- version,
- original,
- )
- .execute(&mut *conn)
- .await?;
-
- Ok(())
-}
-
#[derive(Debug, thiserror::Error)]
pub enum Error {
#[error(transparent)]
@@ -118,8 +60,6 @@ pub enum Error {
Drop(sqlx::Error, sqlx::migrate::MigrateError),
#[error(transparent)]
Migration(#[from] sqlx::migrate::MigrateError),
- #[error("database contains rejected migration {0}:{1}, move it aside")]
- Rejected(String, String),
}
pub trait NotFound: Sized {