package schema import ( "embed" _ "embed" "strings" ) type Def struct { SQL string Hash string MigScript []string } //go:embed *.ddl //go:embed *.sql var assets embed.FS var PrimarySchema = map[int]Def{ 0: {"", "", nil}, 1: {readDDL("primary_1.ddl"), "f2b2847f32681a7178e405553beea4a324034915a0c5a5dc70b3c6abbcc852f2", nil}, 2: {readDDL("primary_2.ddl"), "07ed1449114416ed043084a30e0722a5f97bf172161338d2f7106a8dfd387d0a", nil}, 3: {readDDL("primary_3.ddl"), "65c2125ad0e12d02490cf2275f0067ef3c62a8522edf9a35ee8aa3f3c09b12e8", nil}, 4: {readDDL("primary_4.ddl"), "cb022156ab0e7aea39dd0c985428c43cae7d60e41ca8e9e5a84c774b3019d2ca", readMig("primary_migration_3_4.sql")}, 5: {readDDL("primary_5.ddl"), "9d6217ba4a3503cfe090f72569367f95a413bb14e9effe49ffeabbf255bce8dd", readMig("primary_migration_4_5.sql")}, 6: {readDDL("primary_6.ddl"), "8e83d20bcd008082713f248ae8cd558335a37a37ce90bd8c86e782da640ee160", readMig("primary_migration_5_6.sql")}, 7: {readDDL("primary_7.ddl"), "90d8dbc460afe025f9b74cda5c16bb8e58b178df275223bd2531907a8d8c36c3", readMig("primary_migration_6_7.sql")}, 8: {readDDL("primary_8.ddl"), "746f6005c7a573b8816e5993ecd1d949fe2552b0134ba63bab8b4d5b2b5058ad", readMig("primary_migration_7_8.sql")}, 9: {readDDL("primary_9.ddl"), "0fd1eacb03364153b2a2096106b1a11cc48ae764db52c2896dab9725b55ed188", readMig("primary_migration_8_9.sql")}, 10: {readDDL("primary_10.ddl"), "3427b9cc61249e0148e58d5534f2f4e61d3911a47aa1ec6fec434054151d5065", readMig("primary_migration_9_10.sql")}, } var PrimarySchemaVersion = len(PrimarySchema) - 1 var RequestsSchema = map[int]Def{ 0: {"", "", nil}, 1: {readDDL("requests_1.ddl"), "ebb0a5748b605e8215437413b738279670190ca8159b6227cfc2aa13418b41e9", nil}, } var RequestsSchemaVersion = len(RequestsSchema) - 1 var LogsSchema = map[int]Def{ 0: {"", "", nil}, 1: {readDDL("logs_1.ddl"), "65fba477c04095effc3a8e1bb79fe7547b8e52e983f776f156266eddc4f201d7", nil}, } var LogsSchemaVersion = len(LogsSchema) - 1 func readDDL(name string) string { data, err := assets.ReadFile(name) if err != nil { panic(err) } return string(data) } func readMig(name string) []string { data, err := assets.ReadFile(name) if err != nil { panic(err) } return splitMigration(string(data)) } func splitMigration(input string) []string { arr := make([]string, 0) acc := "" waitForEnd := false for _, line := range strings.Split(input, "\n") { if strings.TrimSpace(line) == "" { continue } if strings.HasPrefix(strings.TrimSpace(line), "--") { continue } acc += line if strings.HasSuffix(strings.TrimSpace(line), "BEGIN") || strings.HasPrefix(strings.TrimSpace(line), "BEGIN") { waitForEnd = true } if strings.HasPrefix(strings.TrimSpace(line), "END") { waitForEnd = false } if strings.HasSuffix(acc, ";") && !waitForEnd { arr = append(arr, acc) acc = "" continue } else { acc += "\n" } } if strings.TrimSpace(acc) != "" { arr = append(arr, acc) } return arr }