]> Untitled Git - bdk/commitdiff
Add sqlite migration to drop duplicated script_pubkeys rows
authorSteve Myers <steve@notmandatory.org>
Tue, 29 Nov 2022 15:20:49 +0000 (07:20 -0800)
committerSteve Myers <steve@notmandatory.org>
Tue, 29 Nov 2022 15:20:49 +0000 (07:20 -0800)
src/database/sqlite.rs

index e837b6c4c2b052152da0511714b2884db740e035..9bcfca832cd81cda1d17357495f08e0864279997 100644 (file)
@@ -59,8 +59,15 @@ static MIGRATIONS: &[&str] = &[
     "DROP TABLE utxos_old;",
     "CREATE UNIQUE INDEX idx_utxos_txid_vout ON utxos(txid, vout);",
     // Fix issue https://github.com/bitcoindevkit/bdk/issues/801: drop duplicated script_pubkeys
-    // TODO "",
+    "ALTER TABLE script_pubkeys RENAME TO script_pubkeys_old;",
+    "DROP INDEX idx_keychain_child;",
+    "DROP INDEX idx_script;",
+    "CREATE TABLE script_pubkeys (keychain TEXT, child INTEGER, script BLOB);",
+    "CREATE INDEX idx_keychain_child ON script_pubkeys(keychain, child);",
+    "CREATE INDEX idx_script ON script_pubkeys(script);",
     "CREATE UNIQUE INDEX idx_script_pks_unique ON script_pubkeys(keychain, child);",
+    "INSERT OR REPLACE INTO script_pubkeys SELECT keychain, child, script FROM script_pubkeys_old;",
+    "DROP TABLE script_pubkeys_old;"
 ];
 
 /// Sqlite database stored on filesystem