From b495673714eb3561add1516bc619045b6e1da15d Mon Sep 17 00:00:00 2001 From: AKP Date: Thu, 19 Jan 2023 14:11:22 +0000 Subject: Update schema to store ETags and cached content Signed-off-by: AKP --- walrss/internal/db/20230119135807_etags.go | 50 ++++++++++++++++++++++++++++++ walrss/internal/db/db.go | 3 ++ 2 files changed, 53 insertions(+) create mode 100644 walrss/internal/db/20230119135807_etags.go diff --git a/walrss/internal/db/20230119135807_etags.go b/walrss/internal/db/20230119135807_etags.go new file mode 100644 index 0000000..dd34934 --- /dev/null +++ b/walrss/internal/db/20230119135807_etags.go @@ -0,0 +1,50 @@ +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 column2") { + return err + } + } + } + + return nil + }, + ) +} diff --git a/walrss/internal/db/db.go b/walrss/internal/db/db.go index 4da74e0..f94aa4f 100644 --- a/walrss/internal/db/db.go +++ b/walrss/internal/db/db.go @@ -43,6 +43,9 @@ type Feed struct { Name string `bun:"name,notnull"` UserID string `bun:"user_id,notnull"` + LastEtag string `bun:"last_etag,nullzero"` + CachedContent string `bun:"cached_content,nullzero"` + User *User `bun:",rel:belongs-to,join:user_id=id"` } -- cgit v1.2.3-70-g09d2