0004_create_orgs_teams.go

 1package migrate
 2
 3import (
 4	"context"
 5	"strings"
 6
 7	"github.com/charmbracelet/soft-serve/pkg/db"
 8)
 9
10const (
11	createOrgsTeamsName    = "create_orgs_teams"
12	createOrgsTeamsVersion = 4
13)
14
15var createOrgsTeams = Migration{
16	Name:    createOrgsTeamsName,
17	Version: createOrgsTeamsVersion,
18	PreMigrate: func(ctx context.Context, h db.Handler) error {
19		if strings.HasPrefix(h.DriverName(), "sqlite") {
20			if _, err := h.ExecContext(ctx, "PRAGMA foreign_keys = OFF;"); err != nil {
21				return err
22			}
23			if _, err := h.ExecContext(ctx, "PRAGMA legacy_alter_table = ON;"); err != nil {
24				return err
25			}
26		}
27		return nil
28	},
29	PostMigrate: func(ctx context.Context, h db.Handler) error {
30		if strings.HasPrefix(h.DriverName(), "sqlite") {
31			if _, err := h.ExecContext(ctx, "PRAGMA foreign_keys = ON;"); err != nil {
32				return err
33			}
34			if _, err := h.ExecContext(ctx, "PRAGMA legacy_alter_table = OFF;"); err != nil {
35				return err
36			}
37		}
38		return nil
39	},
40	Migrate: func(ctx context.Context, h db.Handler) error {
41		return migrateUp(ctx, h, createOrgsTeamsVersion, createOrgsTeamsName)
42	},
43	Rollback: func(ctx context.Context, h db.Handler) error {
44		return migrateDown(ctx, h, createOrgsTeamsVersion, createOrgsTeamsName)
45	},
46}