diff options
author | Frédéric Guillot <fred@miniflux.net> | 2018-08-01 20:28:45 -0700 |
---|---|---|
committer | Frédéric Guillot <fred@miniflux.net> | 2018-08-01 20:28:45 -0700 |
commit | cf03e0e33859b213f1d7e55b300a074eea107100 (patch) | |
tree | 3b88987c42c75b946c4e4b8eeb71fa2359bfe79d /storage | |
parent | 17054b396eff571f49812074024cb9db2e098bdc (diff) |
Create database package (refactoring)
Diffstat (limited to 'storage')
-rw-r--r-- | storage/migration.go | 55 | ||||
-rw-r--r-- | storage/storage.go | 21 |
2 files changed, 2 insertions, 74 deletions
diff --git a/storage/migration.go b/storage/migration.go deleted file mode 100644 index e78f1d5..0000000 --- a/storage/migration.go +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright 2017 Frédéric Guillot. All rights reserved. -// Use of this source code is governed by the Apache 2.0 -// license that can be found in the LICENSE file. - -package storage - -import ( - "fmt" - "strconv" - - "github.com/miniflux/miniflux/logger" - "github.com/miniflux/miniflux/sql" -) - -const schemaVersion = 20 - -// Migrate run database migrations. -func (s *Storage) Migrate() { - var currentVersion int - s.db.QueryRow(`select version from schema_version`).Scan(¤tVersion) - - fmt.Println("Current schema version:", currentVersion) - fmt.Println("Latest schema version:", schemaVersion) - - for version := currentVersion + 1; version <= schemaVersion; version++ { - fmt.Println("Migrating to version:", version) - - tx, err := s.db.Begin() - if err != nil { - logger.Fatal("[Storage:Migrate] %v", err) - } - - rawSQL := sql.SqlMap["schema_version_"+strconv.Itoa(version)] - // fmt.Println(rawSQL) - _, err = tx.Exec(rawSQL) - if err != nil { - tx.Rollback() - logger.Fatal("[Storage:Migrate] %v", err) - } - - if _, err := tx.Exec(`delete from schema_version`); err != nil { - tx.Rollback() - logger.Fatal("[Storage:Migrate] %v", err) - } - - if _, err := tx.Exec(`insert into schema_version (version) values($1)`, version); err != nil { - tx.Rollback() - logger.Fatal("[Storage:Migrate] %v", err) - } - - if err := tx.Commit(); err != nil { - logger.Fatal("[Storage:Migrate] %v", err) - } - } -} diff --git a/storage/storage.go b/storage/storage.go index f7a06b4..19372f0 100644 --- a/storage/storage.go +++ b/storage/storage.go @@ -6,10 +6,6 @@ package storage import ( "database/sql" - - // Postgresql driver import - _ "github.com/lib/pq" - "github.com/miniflux/miniflux/logger" ) // Storage handles all operations related to the database. @@ -17,20 +13,7 @@ type Storage struct { db *sql.DB } -// Close closes all database connections. -func (s *Storage) Close() { - s.db.Close() -} - // NewStorage returns a new Storage. -func NewStorage(databaseURL string, maxOpenConns int) *Storage { - db, err := sql.Open("postgres", databaseURL) - if err != nil { - logger.Fatal("[Storage] Unable to connect to the database: %v", err) - } - - db.SetMaxOpenConns(maxOpenConns) - db.SetMaxIdleConns(2) - - return &Storage{db: db} +func NewStorage(db *sql.DB) *Storage { + return &Storage{db} } |