package migrations import ( "context" "time" "git.haelnorr.com/h/oslstats/internal/db" "github.com/pkg/errors" "github.com/uptrace/bun" ) func init() { Migrations.MustRegister( // UP migration func(ctx context.Context, conn *bun.DB) error { // Add your migration code here _, err := conn.NewCreateTable(). Model((*db.Fixture)(nil)). IfNotExists(). Exec(ctx) if err != nil { return err } now := time.Now().Unix() permissionsData := []*db.Permission{ {Name: "fixtures.create", DisplayName: "Create Fixtures", Description: "Create new fixtures", Resource: "fixtures", Action: "create", IsSystem: true, CreatedAt: now}, {Name: "fixtures.manage", DisplayName: "Manage Fixtures", Description: "Manage fixtures", Resource: "fixtures", Action: "manage", IsSystem: true, CreatedAt: now}, {Name: "fixtures.delete", DisplayName: "Delete Fixtures", Description: "Delete fixtures", Resource: "fixtures", Action: "delete", IsSystem: true, CreatedAt: now}, } _, err = conn.NewInsert(). Model(&permissionsData). Exec(ctx) if err != nil { return errors.Wrap(err, "conn.NewInsert") } return nil }, // DOWN migration func(ctx context.Context, conn *bun.DB) error { // Add your rollback code here _, err := conn.NewDropTable(). Model((*db.Fixture)(nil)). IfExists(). Exec(ctx) if err != nil { return err } return nil }, ) }