status-im/status-go

View on GitHub
walletdatabase/database.go

Summary

Maintainability
A
0 mins
Test Coverage
B
88%
package walletdatabase

import (
    "database/sql"

    "github.com/status-im/status-go/sqlite"
    "github.com/status-im/status-go/walletdatabase/migrations"
)

type DbInitializer struct {
}

func (a DbInitializer) Initialize(path, password string, kdfIterationsNumber int) (*sql.DB, error) {
    return InitializeDB(path, password, kdfIterationsNumber)
}

var walletCustomSteps = []*sqlite.PostStep{}

func doMigration(db *sql.DB) error {
    // Run all the new migrations
    return migrations.Migrate(db, walletCustomSteps)
}

// 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)
    if err != nil {
        return nil, err
    }

    err = doMigration(db)
    if err != nil {
        return nil, err
    }

    return db, nil
}