From 6d34d19808a8c33d4750f610a38c8ad406c36cd9 Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Wed, 6 Sep 2023 15:49:14 +1000 Subject: [PATCH] Drop legacy schema option --- proto/anki/collection.proto | 3 --- pylib/anki/collection.py | 1 - rslib/src/backend/collection.rs | 1 - rslib/src/collection/mod.rs | 16 +--------------- rslib/src/storage/card/mod.rs | 2 +- rslib/src/storage/sqlite.rs | 25 ------------------------- 6 files changed, 2 insertions(+), 46 deletions(-) diff --git a/proto/anki/collection.proto b/proto/anki/collection.proto index b0928acc1..1a760035e 100644 --- a/proto/anki/collection.proto +++ b/proto/anki/collection.proto @@ -41,9 +41,6 @@ message OpenCollectionRequest { string collection_path = 1; string media_folder_path = 2; string media_db_path = 3; - - // temporary option for AnkiDroid - bool force_schema11 = 99; } message CloseCollectionRequest { diff --git a/pylib/anki/collection.py b/pylib/anki/collection.py index 03bf99255..adf3cca5a 100644 --- a/pylib/anki/collection.py +++ b/pylib/anki/collection.py @@ -316,7 +316,6 @@ class Collection(DeprecatedNamesMixin): collection_path=self.path, media_folder_path=media_dir, media_db_path=media_db, - force_schema11=False, ) self.db = DBProxy(weakref.proxy(self._backend)) self.db.begin() diff --git a/rslib/src/backend/collection.rs b/rslib/src/backend/collection.rs index 5203a9195..d9f7c6262 100644 --- a/rslib/src/backend/collection.rs +++ b/rslib/src/backend/collection.rs @@ -19,7 +19,6 @@ impl BackendCollectionService for Backend { let mut builder = CollectionBuilder::new(input.collection_path); builder - .set_force_schema11(input.force_schema11) .set_media_paths(input.media_folder_path, input.media_db_path) .set_server(self.server) .set_tr(self.tr.clone()) diff --git a/rslib/src/collection/mod.rs b/rslib/src/collection/mod.rs index 6ba83b1b5..207877742 100644 --- a/rslib/src/collection/mod.rs +++ b/rslib/src/collection/mod.rs @@ -40,8 +40,6 @@ pub struct CollectionBuilder { server: Option, tr: Option, check_integrity: bool, - // temporary option for AnkiDroid - force_schema11: Option, progress_handler: Option>>, } @@ -63,14 +61,7 @@ impl CollectionBuilder { let server = self.server.unwrap_or_default(); let media_folder = self.media_folder.clone().unwrap_or_default(); let media_db = self.media_db.clone().unwrap_or_default(); - let force_schema11 = self.force_schema11.unwrap_or_default(); - let storage = SqliteStorage::open_or_create( - &col_path, - &tr, - server, - self.check_integrity, - force_schema11, - )?; + let storage = SqliteStorage::open_or_create(&col_path, &tr, server, self.check_integrity)?; let col = Collection { storage, col_path, @@ -119,11 +110,6 @@ impl CollectionBuilder { self } - pub fn set_force_schema11(&mut self, force: bool) -> &mut Self { - self.force_schema11 = Some(force); - self - } - pub fn set_check_integrity(&mut self, check_integrity: bool) -> &mut Self { self.check_integrity = check_integrity; self diff --git a/rslib/src/storage/card/mod.rs b/rslib/src/storage/card/mod.rs index 1a16c0c6d..a08836f4c 100644 --- a/rslib/src/storage/card/mod.rs +++ b/rslib/src/storage/card/mod.rs @@ -777,7 +777,7 @@ mod test { fn add_card() { let tr = I18n::template_only(); let storage = - SqliteStorage::open_or_create(Path::new(":memory:"), &tr, false, false, false).unwrap(); + SqliteStorage::open_or_create(Path::new(":memory:"), &tr, false, false).unwrap(); let mut card = Card::default(); storage.add_card(&mut card).unwrap(); let id1 = card.id; diff --git a/rslib/src/storage/sqlite.rs b/rslib/src/storage/sqlite.rs index 253c3f591..7b9c18767 100644 --- a/rslib/src/storage/sqlite.rs +++ b/rslib/src/storage/sqlite.rs @@ -258,7 +258,6 @@ impl SqliteStorage { tr: &I18n, server: bool, check_integrity: bool, - force_schema11: bool, ) -> Result { let db = open_or_create_collection_db(path)?; let (create, ver) = schema_version(&db)?; @@ -311,13 +310,6 @@ impl SqliteStorage { let storage = Self { db }; - if force_schema11 { - if create || upgrade { - storage.commit_trx()?; - } - return storage_with_schema11(storage, ver); - } - if create || upgrade { storage.upgrade_to_latest_schema(ver, server)?; } @@ -438,20 +430,3 @@ impl SqliteStorage { self.db.query_row(sql, [], |r| r.get(0)).map_err(Into::into) } } - -fn storage_with_schema11(storage: SqliteStorage, ver: u8) -> Result { - if ver != 11 { - if ver != SCHEMA_MAX_VERSION { - // partially upgraded; need to fully upgrade before downgrading - storage.begin_trx()?; - storage.upgrade_to_latest_schema(ver, false)?; - storage.commit_trx()?; - } - storage.downgrade_to(SchemaVersion::V11)?; - } - // Requery uses "TRUNCATE" by default if WAL is not enabled. - // We copy this behaviour here. See https://github.com/ankidroid/Anki-Android/pull/7977 for - // analysis. We may be able to enable WAL at a later time. - storage.db.pragma_update(None, "journal_mode", "TRUNCATE")?; - Ok(storage) -}