From 4dbbdadd90b11ff13d8888b5be8329e223f5cc40 Mon Sep 17 00:00:00 2001 From: AKP Date: Sun, 9 Feb 2025 22:17:19 +0000 Subject: Conver migrations to plain SQL --- walrss/internal/db/00000000000001_initialise.go | 38 ---------------- .../internal/db/00000000000001_initialise.up.sql | 23 ++++++++++ walrss/internal/db/20230119135807_etags.go | 50 ---------------------- walrss/internal/db/20230119135807_etags.up.sql | 3 ++ walrss/internal/db/20230119165107_lastmodified.go | 34 --------------- .../internal/db/20230119165107_lastmodified.up.sql | 1 + walrss/internal/db/migrations.go | 15 +++++-- 7 files changed, 38 insertions(+), 126 deletions(-) delete mode 100644 walrss/internal/db/00000000000001_initialise.go create mode 100644 walrss/internal/db/00000000000001_initialise.up.sql delete mode 100644 walrss/internal/db/20230119135807_etags.go create mode 100644 walrss/internal/db/20230119135807_etags.up.sql delete mode 100644 walrss/internal/db/20230119165107_lastmodified.go create mode 100644 walrss/internal/db/20230119165107_lastmodified.up.sql 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") -- cgit v1.2.3-70-g09d2