aboutsummaryrefslogtreecommitdiffstats
path: root/walrss/internal
diff options
context:
space:
mode:
Diffstat (limited to 'walrss/internal')
-rw-r--r--walrss/internal/db/00000000000001_initialise.go38
-rw-r--r--walrss/internal/db/00000000000001_initialise.up.sql23
-rw-r--r--walrss/internal/db/20230119135807_etags.go50
-rw-r--r--walrss/internal/db/20230119135807_etags.up.sql3
-rw-r--r--walrss/internal/db/20230119165107_lastmodified.go34
-rw-r--r--walrss/internal/db/20230119165107_lastmodified.up.sql1
-rw-r--r--walrss/internal/db/migrations.go15
7 files changed, 38 insertions, 126 deletions
diff --git a/walrss/internal/db/00000000000001_initialise.go b/walrss/internal/db/00000000000001_initialise.go
deleted file mode 100644
index aaa37d1..0000000
--- a/walrss/internal/db/00000000000001_initialise.go
+++ /dev/null
@@ -1,38 +0,0 @@
-package db
-
-import (
- "context"
- "github.com/uptrace/bun"
-)
-
-func init() {
- tps := []any{
- (*User)(nil),
- (*Feed)(nil),
- }
-
- migs.MustRegister(
- func(ctx context.Context, db *bun.DB) error {
- migLogger.Debug().Msg("1 up")
-
- for _, t := range tps {
- if _, err := db.NewCreateTable().Model(t).Exec(ctx); err != nil {
- return err
- }
- }
-
- return nil
- },
- func(ctx context.Context, db *bun.DB) error {
- migLogger.Debug().Msg("1 down")
-
- for _, t := range tps {
- if _, err := db.NewDropTable().Model(t).Exec(ctx); err != nil {
- return err
- }
- }
-
- return nil
- },
- )
-}
diff --git a/walrss/internal/db/00000000000001_initialise.up.sql b/walrss/internal/db/00000000000001_initialise.up.sql
new file mode 100644
index 0000000..8527ada
--- /dev/null
+++ b/walrss/internal/db/00000000000001_initialise.up.sql
@@ -0,0 +1,23 @@
+CREATE TABLE "users"
+(
+ "id" VARCHAR NOT NULL,
+ "email" VARCHAR NOT NULL,
+ "password" BLOB,
+ "salt" BLOB,
+ "active" BOOLEAN NOT NULL,
+ "schedule_day" INTEGER,
+ "schedule_hour" INTEGER,
+ PRIMARY KEY ("id"),
+ UNIQUE ("email")
+)
+
+--bun:split
+
+CREATE TABLE "feeds"
+(
+ "id" VARCHAR NOT NULL,
+ "url" VARCHAR NOT NULL,
+ "name" VARCHAR NOT NULL,
+ "user_id" VARCHAR NOT NULL,
+ PRIMARY KEY ("id")
+) \ No newline at end of file
diff --git a/walrss/internal/db/20230119135807_etags.go b/walrss/internal/db/20230119135807_etags.go
deleted file mode 100644
index 478d070..0000000
--- a/walrss/internal/db/20230119135807_etags.go
+++ /dev/null
@@ -1,50 +0,0 @@
-package db
-
-import (
- "context"
- "github.com/uptrace/bun"
- "strings"
-)
-
-func init() {
- migs.MustRegister(
- func(ctx context.Context, db *bun.DB) error {
- migLogger.Debug().Msg("2022-01-19@13:58:07 up")
-
- queries := []string{
- `ALTER TABLE feeds ADD COLUMN last_etag VARCHAR;`,
- `ALTER TABLE feeds ADD COLUMN cached_content VARCHAR;`,
-
- }
-
- for _, query := range queries {
- if _, err := db.ExecContext(ctx, query); err != nil {
- if !strings.Contains(err.Error(), "duplicate column name") {
- return err
- }
- }
- }
-
- return nil
- },
- func(ctx context.Context, db *bun.DB) error {
- migLogger.Debug().Msg("2022-01-19@13:58:07 down")
-
- queries := []string{
- `ALTER TABLE feeds DROP COLUMN last_etag;`,
- `ALTER TABLE feeds DROP COLUMN cached_content;`,
-
- }
-
- for _, query := range queries {
- if _, err := db.ExecContext(ctx, query); err != nil {
- if !strings.Contains(err.Error(), "no such column") {
- return err
- }
- }
- }
-
- return nil
- },
- )
-}
diff --git a/walrss/internal/db/20230119135807_etags.up.sql b/walrss/internal/db/20230119135807_etags.up.sql
new file mode 100644
index 0000000..a9e315a
--- /dev/null
+++ b/walrss/internal/db/20230119135807_etags.up.sql
@@ -0,0 +1,3 @@
+ALTER TABLE feeds ADD COLUMN last_etag VARCHAR
+--bun:split
+ALTER TABLE feeds ADD COLUMN cached_content VARCHAR \ No newline at end of file
diff --git a/walrss/internal/db/20230119165107_lastmodified.go b/walrss/internal/db/20230119165107_lastmodified.go
deleted file mode 100644
index 109ff25..0000000
--- a/walrss/internal/db/20230119165107_lastmodified.go
+++ /dev/null
@@ -1,34 +0,0 @@
-package db
-
-import (
- "context"
- "github.com/uptrace/bun"
- "strings"
-)
-
-func init() {
- migs.MustRegister(
- func(ctx context.Context, db *bun.DB) error {
- migLogger.Debug().Msg("2022-01-19@16:51:07 up")
-
- if _, err := db.ExecContext(ctx, `ALTER TABLE feeds ADD COLUMN last_modified VARCHAR;`); err != nil {
- if !strings.Contains(err.Error(), "duplicate column name") {
- return err
- }
- }
-
- return nil
- },
- func(ctx context.Context, db *bun.DB) error {
- migLogger.Debug().Msg("2022-01-19@16:51:07 down")
-
- if _, err := db.ExecContext(ctx, `ALTER TABLE feeds DROP COLUMN last_modified;`); err != nil {
- if !strings.Contains(err.Error(), "no such column") {
- return err
- }
- }
-
- return nil
- },
- )
-}
diff --git a/walrss/internal/db/20230119165107_lastmodified.up.sql b/walrss/internal/db/20230119165107_lastmodified.up.sql
new file mode 100644
index 0000000..2885cf3
--- /dev/null
+++ b/walrss/internal/db/20230119165107_lastmodified.up.sql
@@ -0,0 +1 @@
+ALTER TABLE feeds ADD COLUMN last_modified VARCHAR \ No newline at end of file
diff --git a/walrss/internal/db/migrations.go b/walrss/internal/db/migrations.go
index d4773fc..e5a74ad 100644
--- a/walrss/internal/db/migrations.go
+++ b/walrss/internal/db/migrations.go
@@ -2,16 +2,23 @@ package db
import (
"context"
+ "embed"
"github.com/rs/zerolog/log"
"github.com/uptrace/bun"
"github.com/uptrace/bun/migrate"
"time"
)
-var (
- migs = migrate.NewMigrations()
- migLogger = log.Logger.With().Str("location", "migrations").Logger()
-)
+var migs = migrate.NewMigrations()
+
+//go:embed *.sql
+var sqlMigrations embed.FS
+
+func init() {
+ if err := migs.Discover(sqlMigrations); err != nil {
+ panic(err)
+ }
+}
func DoMigrations(db *bun.DB) error {
log.Info().Msg("running migrations")