Fix enum type migration and more relations
Some checks are pending
/ test (push) Waiting to run

- Fixed bad SQL for creating sql enum types
- Noted more relations, mostly x to media
This commit is contained in:
Melody Becker 2025-03-27 15:55:40 +01:00
parent 484bb95820
commit 8ffd6d0050
Signed by: mstar
SSH key fingerprint: SHA256:9VAo09aaVNTWKzPW7Hq2LW+ox9OdwmTSHRoD4mlz1yI
4 changed files with 20 additions and 15 deletions

View file

@ -82,7 +82,7 @@ func createRemoteServerSoftwareType(db *gorm.DB) error {
// Helper function for ensuring the existence of an enum with the given values
func migrateEnum(db *gorm.DB, name string, values []string) error {
if err := db.Exec("DROP TYPE IF EXISTS " + name).Error; err != nil {
if err := db.Exec("DROP TYPE IF EXISTS " + name + " CASCADE;").Error; err != nil {
return other.Error(
"storage",
fmt.Sprintf("Failed to remove old type %s (if it exists)", name),
@ -90,9 +90,9 @@ func migrateEnum(db *gorm.DB, name string, values []string) error {
)
}
queryBuilder := strings.Builder{}
queryBuilder.WriteString("CREATE TYPE")
queryBuilder.WriteString("CREATE TYPE ")
queryBuilder.WriteString(name)
queryBuilder.WriteString("AS ENUM (")
queryBuilder.WriteString(" AS ENUM (")
blen := len(values)
for i, btype := range values {
queryBuilder.WriteString("'" + string(btype) + "'")
@ -101,6 +101,7 @@ func migrateEnum(db *gorm.DB, name string, values []string) error {
queryBuilder.WriteString(",")
}
}
queryBuilder.WriteString(");")
if err := db.Exec(queryBuilder.String()).Error; err != nil {
return err
}