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}