From 016e0552f9eb0714d1fb51e4c8533b7a599e442d Mon Sep 17 00:00:00 2001 From: Ivan Belyakov Date: Fri, 30 Jun 2023 16:46:07 +0200 Subject: [PATCH] migration: refactored `InitializeDB` function to allow local go files with implementation to open unencrypted DB for debugging purposes. --- appdatabase/database.go | 51 ++++++++++++++++++++++++----------------- 1 file changed, 30 insertions(+), 21 deletions(-) diff --git a/appdatabase/database.go b/appdatabase/database.go index 5d66cddbb..13f6e68f4 100644 --- a/appdatabase/database.go +++ b/appdatabase/database.go @@ -26,6 +26,35 @@ var customSteps = []sqlite.PostStep{ {Version: 1687193315, CustomMigration: migrateWalletTransferFromToAddresses, RollBackVersion: 1686825075}, } +func doMigration(db *sql.DB) error { + lastMigration, migrationTableExists, err := sqlite.GetLastMigrationVersion(db) + if err != nil { + return err + } + + if !migrationTableExists || (lastMigration > 0 && lastMigration < nodeCfgMigrationDate) { + // If it's the first time migration's being run, or latest migration happened before migrating the nodecfg table + err = migrationsprevnodecfg.Migrate(db) + if err != nil { + return err + } + + // NodeConfig migration cannot be done with SQL + err = nodecfg.MigrateNodeConfig(db) + if err != nil { + return err + } + } + + // Run all the new migrations + err = migrations.Migrate(db, customSteps) + if err != nil { + return err + } + + return nil +} + // InitializeDB creates db file at a given path and applies migrations. func InitializeDB(path, password string, kdfIterationsNumber int) (*sql.DB, error) { db, err := sqlite.OpenDB(path, password, kdfIterationsNumber) @@ -33,27 +62,7 @@ func InitializeDB(path, password string, kdfIterationsNumber int) (*sql.DB, erro return nil, err } - lastMigration, migrationTableExists, err := sqlite.GetLastMigrationVersion(db) - if err != nil { - return nil, err - } - - if !migrationTableExists || (lastMigration > 0 && lastMigration < nodeCfgMigrationDate) { - // If it's the first time migration's being run, or latest migration happened before migrating the nodecfg table - err = migrationsprevnodecfg.Migrate(db) - if err != nil { - return nil, err - } - - // NodeConfig migration cannot be done with SQL - err = nodecfg.MigrateNodeConfig(db) - if err != nil { - return nil, err - } - } - - // Run all the new migrations - err = migrations.Migrate(db, customSteps) + err = doMigration(db) if err != nil { return nil, err }