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 @@
--- /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 @@
+ "github.com/lopezator/migrator" + "keep.imfreedom.org/grim/devweb/db/scheme" +func migrationFromFile(filename string) *migrator.Migration { + return &migrator.Migration{ + Func: func(tx *sql.Tx) error { + data, err := scheme.FSString(false, "/"+filename) + if _, err := tx.Exec(data); err != nil { +func (c *Cmd) Run() error { + err := Setup(c.Options.Driver, c.Options.Options) + m, err := migrator.New(migrator.Migrations( + migrationFromFile("01-initial.sql"), + if err := m.Migrate(_db.DB); err != nil { --- 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 @@
--- 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 .
- "github.com/lopezator/migrator"
- "keep.imfreedom.org/grim/devweb/db"
-func (c *Cmd) Run() error {
- err := db.Setup(c.Options.Driver, c.Options.Options)
- m, err := migrator.New(migrator.Migrations(
- migrationFromFile("01-initial.sql"),
- if err := m.Migrate(db.Get().DB); err != nil {
--- 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 @@
- "github.com/lopezator/migrator"
-func migrationFromFile(filename string) *migrator.Migration {
- return &migrator.Migration{
- Func: func(tx *sql.Tx) error {
- data, err := FSString(false, "/"+filename)
- if _, err := tx.Exec(data); err != 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 . --- 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"
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.'"`