From c19a675e36fea124d6df6bc8d0ac5768fb479634 Mon Sep 17 00:00:00 2001 From: Dennis Schoepf Date: Sun, 28 Apr 2024 19:00:14 +0200 Subject: [PATCH] Revert "Removes internal directory" This reverts commit 5005186cd3140979d3cb8139837465031eac9279. --- internal/database/database.go | 38 ++++++++++++++++++++++ internal/database/migrations/1_initial.sql | 8 +++++ 2 files changed, 46 insertions(+) create mode 100644 internal/database/database.go create mode 100644 internal/database/migrations/1_initial.sql diff --git a/internal/database/database.go b/internal/database/database.go new file mode 100644 index 0000000..dacd5c1 --- /dev/null +++ b/internal/database/database.go @@ -0,0 +1,38 @@ +package database + +import ( + "embed" + "fmt" + + "github.com/jmoiron/sqlx" + _ "github.com/mattn/go-sqlite3" + migrate "github.com/rubenv/sql-migrate" +) + +var DB *sqlx.DB + +//go:embed migrations/* +var dbMigrations embed.FS + +func Connect(filename string) error { + DB, err := sqlx.Open("sqlite3", filename) + + if err != nil { + return err + } + + migrations := migrate.EmbedFileSystemMigrationSource{ + FileSystem: dbMigrations, + Root: "migrations", + } + + n, err := migrate.Exec(DB.DB, "sqlite3", migrations, migrate.Up) + + if err != nil { + return err + } + + fmt.Printf("Applied %d migrations - Database is ready!\n", n) + + return nil +} diff --git a/internal/database/migrations/1_initial.sql b/internal/database/migrations/1_initial.sql new file mode 100644 index 0000000..b544f21 --- /dev/null +++ b/internal/database/migrations/1_initial.sql @@ -0,0 +1,8 @@ +-- +migrate Up +CREATE table users ( + id INTEGER PRIMARY KEY, + name text NOT NULL +); + +-- +migrate Down +DROP TABLE users;