diff --git a/pkg/services/sqlstore/migrator/dialect.go b/pkg/services/sqlstore/migrator/dialect.go index 6f376aa6661..8e9b8966b2a 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" @@ -128,6 +129,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 b996eabac75..ab7b23aafbd 100644 --- a/pkg/services/sqlstore/migrator/postgres_dialect.go +++ b/pkg/services/sqlstore/migrator/postgres_dialect.go @@ -48,16 +48,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 {