From cf03e0e33859b213f1d7e55b300a074eea107100 Mon Sep 17 00:00:00 2001 From: Frédéric Guillot Date: Wed, 1 Aug 2018 20:28:45 -0700 Subject: Create database package (refactoring) --- storage/migration.go | 55 ---------------------------------------------------- storage/storage.go | 21 ++------------------ 2 files changed, 2 insertions(+), 74 deletions(-) delete mode 100644 storage/migration.go (limited to 'storage') 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} } -- cgit v1.2.3