From b70a232343e729e09289a66b50fec58917c63115 Mon Sep 17 00:00:00 2001 From: Dennis Date: Fri, 30 Aug 2024 17:07:14 +0200 Subject: [PATCH] Restructures database access Makes it simpler as long as the application is just the CLI --- internal/database/database.go | 17 +++++++---------- internal/database/feed.go | 8 ++++++++ 2 files changed, 15 insertions(+), 10 deletions(-) create mode 100644 internal/database/feed.go diff --git a/internal/database/database.go b/internal/database/database.go index d4d342d..281ed50 100644 --- a/internal/database/database.go +++ b/internal/database/database.go @@ -3,21 +3,22 @@ package database import ( "database/sql" "embed" - "fmt" _ "github.com/mattn/go-sqlite3" migrate "github.com/rubenv/sql-migrate" ) +var db *sql.DB + //go:embed migrations/* var dbMigrations embed.FS -func Connect(filename string) (*sql.DB, error) { +func Init(filename string) error { dbOptions := "?_fk=on&_journal=WAL&sync=normal" db, err := sql.Open("sqlite3", filename+dbOptions) if err != nil { - return nil, err + return err } migrations := migrate.EmbedFileSystemMigrationSource{ @@ -25,13 +26,9 @@ func Connect(filename string) (*sql.DB, error) { Root: "migrations", } - _, migrateErr := migrate.Exec(db, "sqlite3", migrations, migrate.Up) - - if migrateErr != nil { - return nil, err + if _, err := migrate.Exec(db, "sqlite3", migrations, migrate.Up); err != nil { + return err } - fmt.Println("Applied migrations - Database is ready!") - - return db, nil + return db.Ping() } diff --git a/internal/database/feed.go b/internal/database/feed.go new file mode 100644 index 0000000..de11ffb --- /dev/null +++ b/internal/database/feed.go @@ -0,0 +1,8 @@ +package database + +import "fmt" + +func AddFeed(url string) error { + fmt.Printf("Trying to add new feed by URL: %s", url) + return nil +}