grim/devweb

Parents c829827e5266
Children 70152f6b3743
Move the database migrations to the db package and hide the actual database connection
--- a/.hgignore Wed Jul 15 02:25:15 2020 -0500
+++ b/.hgignore Wed Jul 15 02:38:25 2020 -0500
@@ -1,5 +1,5 @@
syntax: glob
*.db
devweb
-db/scheme/scheme.go
+db/scheme/embedded.go
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/db/cmd.go Wed Jul 15 02:38:25 2020 -0500
@@ -0,0 +1,53 @@
+package db
+
+import (
+ "database/sql"
+
+ "github.com/lopezator/migrator"
+
+ "keep.imfreedom.org/grim/devweb/db/scheme"
+)
+
+type Cmd struct {
+ Options
+}
+
+func migrationFromFile(filename string) *migrator.Migration {
+ return &migrator.Migration{
+ Name: filename,
+ Func: func(tx *sql.Tx) error {
+ data, err := scheme.FSString(false, "/"+filename)
+ if err != nil {
+ return err
+ }
+
+ if _, err := tx.Exec(data); err != nil {
+ return err
+ }
+
+ return nil
+ },
+ }
+}
+
+func (c *Cmd) Run() error {
+ err := Setup(c.Options.Driver, c.Options.Options)
+ if err != nil {
+ return err
+ }
+
+ m, err := migrator.New(migrator.Migrations(
+ migrationFromFile("01-initial.sql"),
+ ))
+ if err != nil {
+ Teardown()
+ return err
+ }
+
+ if err := m.Migrate(_db.DB); err != nil {
+ Teardown()
+ return err
+ }
+
+ return Teardown()
+}
--- a/db/db.go Wed Jul 15 02:25:15 2020 -0500
+++ b/db/db.go Wed Jul 15 02:38:25 2020 -0500
@@ -28,7 +28,3 @@
func Teardown() error {
return _db.Close()
}
-
-func Get() *sqlx.DB {
- return _db
-}
--- a/db/scheme/cmd.go Wed Jul 15 02:25:15 2020 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-//go:generate esc -o scheme.go -pkg scheme -include .+\.sql -prefix /scheme .
-package scheme
-
-import (
- "github.com/lopezator/migrator"
-
- "keep.imfreedom.org/grim/devweb/db"
-)
-
-type Cmd struct {
- db.Options
-}
-
-func (c *Cmd) Run() error {
- err := db.Setup(c.Options.Driver, c.Options.Options)
- if err != nil {
- return err
- }
-
- m, err := migrator.New(migrator.Migrations(
- migrationFromFile("01-initial.sql"),
- ))
- if err != nil {
- db.Teardown()
- return err
- }
-
- if err := m.Migrate(db.Get().DB); err != nil {
- db.Teardown()
- return err
- }
-
- return db.Teardown()
-}
--- a/db/scheme/helpers.go Wed Jul 15 02:25:15 2020 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-package scheme
-
-import (
- "database/sql"
-
- "github.com/lopezator/migrator"
-)
-
-func migrationFromFile(filename string) *migrator.Migration {
- return &migrator.Migration{
- Name: filename,
- Func: func(tx *sql.Tx) error {
- data, err := FSString(false, "/"+filename)
- if err != nil {
- return err
- }
-
- if _, err := tx.Exec(data); err != nil {
- return err
- }
-
- return nil
- },
- }
-}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/db/scheme/scheme.go Wed Jul 15 02:38:25 2020 -0500
@@ -0,0 +1,2 @@
+//go:generate esc -o embedded.go -pkg scheme -include .+\.sql -prefix /scheme .
+package scheme
--- a/main.go Wed Jul 15 02:25:15 2020 -0500
+++ b/main.go Wed Jul 15 02:38:25 2020 -0500
@@ -7,13 +7,13 @@
"keep.imfreedom.org/grim/devweb/access"
"keep.imfreedom.org/grim/devweb/consts"
- "keep.imfreedom.org/grim/devweb/db/scheme"
+ "keep.imfreedom.org/grim/devweb/db"
"keep.imfreedom.org/grim/devweb/server"
)
type cli struct {
Access access.Cmd `kong:"cmd,help='Commands for managing API keys.'"`
- Migrate scheme.Cmd `kong:"cmd,help='Create/Update the database to the most recent scheme.'"`
+ Migrate db.Cmd `kong:"cmd,help='Create/Update the database to the most recent scheme.'"`
Serve server.Cmd `kong:"cmd,help='Run the server. This is the default command.',default='1'"`
Version versionCmd `kong:"cmd,help='Display the version number and exit.'"`
}