Open ChrisPortman opened 1 year ago
Sqlite coumns that are neither NOT NULL or NULL are nullable by default. However, .Nullable() defaults to false and is only set true if the CREATE TABLE sql explicitly denotes the column as NULL
NOT NULL
NULL
.Nullable()
true
CREATE TABLE
https://github.com/go-gorm/sqlite/blob/397ec6fa8c64060db1dd392675cf51ab919c4c3c/ddlmod.go#L122
columnType := migrator.ColumnType{ <snip> NullableValue: sql.NullBool{Valid: true}, //<--- .Bool implicitly false, i.e. NOT NULL <snip> } matchUpper := strings.ToUpper(matches[3]) if strings.Contains(matchUpper, " NOT NULL") { columnType.NullableValue = sql.NullBool{Bool: false, Valid: true} } else if strings.Contains(matchUpper, " NULL") { columnType.NullableValue = sql.NullBool{Bool: true, Valid: true} } ...
I think this is also raised by #107
Description
Sqlite coumns that are neither
NOT NULL
orNULL
are nullable by default. However,.Nullable()
defaults to false and is only settrue
if theCREATE TABLE
sql explicitly denotes the column asNULL
https://github.com/go-gorm/sqlite/blob/397ec6fa8c64060db1dd392675cf51ab919c4c3c/ddlmod.go#L122