package updates import ( "github.com/go-gormigrate/gormigrate/v2" "gorm.io/gorm" ) var createPosts = []*gormigrate.Migration{ { ID: "202610060001_create_golem15_journal_posts", Migrate: func(tx *gorm.DB) error { for _, stmt := range []string{ `CREATE TABLE golem15_journal_posts ( id SERIAL PRIMARY KEY, user_id INTEGER NULL, redactor_id INTEGER NULL, title TEXT NULL, slug TEXT NOT NULL, excerpt TEXT NULL, content TEXT NULL, content_html TEXT NULL, published_at TIMESTAMPTZ NULL, published BOOLEAN NOT NULL DEFAULT FALSE, is_pinned BOOLEAN NOT NULL DEFAULT FALSE, metadata JSONB NULL, sources JSONB NULL, created_at TIMESTAMPTZ NULL, updated_at TIMESTAMPTZ NULL )`, `CREATE INDEX golem15_journal_posts_user_id_index ON golem15_journal_posts (user_id)`, `CREATE INDEX golem15_journal_posts_redactor_id_index ON golem15_journal_posts (redactor_id)`, `CREATE UNIQUE INDEX golem15_journal_posts_slug_unique ON golem15_journal_posts (slug)`, } { if err := tx.Exec(stmt).Error; err != nil { return err } } return nil }, Rollback: func(tx *gorm.DB) error { return tx.Exec(`DROP TABLE IF EXISTS golem15_journal_posts`).Error }, }, } func init() { Register(createPosts...) }