diff --git a/pkg/services/sqlstore/migrator/dialect.go b/pkg/services/sqlstore/migrator/dialect.go index 27038cd9c24..9ba7b040450 100644 --- a/pkg/services/sqlstore/migrator/dialect.go +++ b/pkg/services/sqlstore/migrator/dialect.go @@ -2,6 +2,7 @@ package migrator import ( "fmt" + "strconv" "strings" "xorm.io/xorm" @@ -129,6 +130,14 @@ func (b *BaseDialect) EqStr() string { } func (b *BaseDialect) Default(col *Column) string { + if col.Type == DB_Bool { + // Ensure that all dialects support the same literals in the same way. + bl, err := strconv.ParseBool(col.Default) + if err != nil { + panic(fmt.Errorf("failed to create default value for column '%s': invalid boolean default value '%s'", col.Name, col.Default)) + } + return b.dialect.BooleanStr(bl) + } return col.Default } diff --git a/pkg/services/sqlstore/migrator/postgres_dialect.go b/pkg/services/sqlstore/migrator/postgres_dialect.go index e3075d27bf9..6fd443e3876 100644 --- a/pkg/services/sqlstore/migrator/postgres_dialect.go +++ b/pkg/services/sqlstore/migrator/postgres_dialect.go @@ -46,16 +46,6 @@ func (db *PostgresDialect) BatchSize() int { return 1000 } -func (db *PostgresDialect) Default(col *Column) string { - if col.Type == DB_Bool { - if col.Default == "0" { - return "FALSE" - } - return "TRUE" - } - return col.Default -} - func (db *PostgresDialect) SQLType(c *Column) string { var res string switch t := c.Type; t {