Skip to content

Commit

Permalink
MariaDB always use null as default value
Browse files Browse the repository at this point in the history
commit 22fde3a755dfab3c9a9dc1a73e797771e37302ff
Author: Jinzhu <wosmvp@gmail.com>
Date:   Sat May 28 22:59:11 2022 +0800

    Add don't support null as default value config

commit 195eea7
Author: a631807682 <631807682@qq.com>
Date:   Mon May 23 21:05:34 2022 +0800

    refactor: add config for mariadb default value

commit 4e5537b
Author: a631807682 <631807682@qq.com>
Date:   Fri May 20 21:07:25 2022 +0800

    fix: rewrite mariadb default value
  • Loading branch information
a631807682 authored and jinzhu committed May 28, 2022
1 parent d6047a9 commit 7ac57a7
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 11 deletions.
7 changes: 7 additions & 0 deletions migrator.go
Expand Up @@ -203,6 +203,13 @@ func (m Migrator) ColumnTypes(value interface{}) ([]gorm.ColumnType, error) {
}

column.DefaultValueValue.String = strings.Trim(column.DefaultValueValue.String, "'")
if m.Dialector.DontSupportNullAsDefaultValue {
// rewrite mariadb default value like other version
if column.DefaultValueValue.Valid && column.DefaultValueValue.String == "NULL" {
column.DefaultValueValue.Valid = false
column.DefaultValueValue.String = ""
}
}

if datetimePrecision.Valid {
column.DecimalSizeValue = datetimePrecision
Expand Down
24 changes: 13 additions & 11 deletions mysql.go
Expand Up @@ -18,17 +18,18 @@ import (
)

type Config struct {
DriverName string
ServerVersion string
DSN string
Conn gorm.ConnPool
SkipInitializeWithVersion bool
DefaultStringSize uint
DefaultDatetimePrecision *int
DisableDatetimePrecision bool
DontSupportRenameIndex bool
DontSupportRenameColumn bool
DontSupportForShareClause bool
DriverName string
ServerVersion string
DSN string
Conn gorm.ConnPool
SkipInitializeWithVersion bool
DefaultStringSize uint
DefaultDatetimePrecision *int
DisableDatetimePrecision bool
DontSupportRenameIndex bool
DontSupportRenameColumn bool
DontSupportForShareClause bool
DontSupportNullAsDefaultValue bool
}

type Dialector struct {
Expand Down Expand Up @@ -120,6 +121,7 @@ func (dialector Dialector) Initialize(db *gorm.DB) (err error) {
dialector.Config.DontSupportRenameIndex = true
dialector.Config.DontSupportRenameColumn = true
dialector.Config.DontSupportForShareClause = true
dialector.Config.DontSupportNullAsDefaultValue = true
} else if strings.HasPrefix(dialector.ServerVersion, "5.6.") {
dialector.Config.DontSupportRenameIndex = true
dialector.Config.DontSupportRenameColumn = true
Expand Down

0 comments on commit 7ac57a7

Please sign in to comment.