default maxIdentifierLength is 64
This commit is contained in:
parent
563d9b588a
commit
b8d39da106
2
gorm.go
2
gorm.go
@ -146,7 +146,7 @@ func Open(dialector Dialector, opts ...Option) (db *DB, err error) {
|
||||
}
|
||||
|
||||
if config.NamingStrategy == nil {
|
||||
config.NamingStrategy = schema.NamingStrategy{IdentifierMaxLength: 63}
|
||||
config.NamingStrategy = schema.NamingStrategy{IdentifierMaxLength: 64} // Default Identifier length is 64
|
||||
}
|
||||
|
||||
if config.Logger == nil {
|
||||
|
@ -91,7 +91,7 @@ func (ns NamingStrategy) formatName(prefix, table, name string) string {
|
||||
}, "_"), ".", "_")
|
||||
|
||||
if ns.IdentifierMaxLength == 0 {
|
||||
ns.IdentifierMaxLength = 63
|
||||
ns.IdentifierMaxLength = 64
|
||||
}
|
||||
|
||||
if utf8.RuneCountInString(formattedName) > ns.IdentifierMaxLength {
|
||||
|
@ -198,6 +198,15 @@ func TestFormatNameWithStringLongerThan63Characters(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestFormatNameWithStringLongerThan64Characters(t *testing.T) {
|
||||
ns := NamingStrategy{IdentifierMaxLength: 64}
|
||||
|
||||
formattedName := ns.formatName("prefix", "table", "thisIsAVeryVeryVeryVeryVeryVeryVeryVeryVeryLongString")
|
||||
if formattedName != "prefix_table_thisIsAVeryVeryVeryVeryVeryVeryVeryVeryVery180f2c67" {
|
||||
t.Errorf("invalid formatted name generated, got %v", formattedName)
|
||||
}
|
||||
}
|
||||
|
||||
func TestReplaceEmptyTableName(t *testing.T) {
|
||||
ns := NamingStrategy{
|
||||
SingularTable: true,
|
||||
|
@ -768,13 +768,13 @@ func TestParseConstraintNameWithSchemaQualifiedLongTableName(t *testing.T) {
|
||||
s, err := schema.Parse(
|
||||
&Book{},
|
||||
&sync.Map{},
|
||||
schema.NamingStrategy{IdentifierMaxLength: 63},
|
||||
schema.NamingStrategy{IdentifierMaxLength: 64},
|
||||
)
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to parse schema")
|
||||
}
|
||||
|
||||
expectedConstraintName := "fk_my_schema_a_very_very_very_very_very_very_very_very_4db13eec"
|
||||
expectedConstraintName := "fk_my_schema_a_very_very_very_very_very_very_very_very_l4db13eec"
|
||||
constraint := s.Relationships.Relations["Author"].ParseConstraint()
|
||||
|
||||
if constraint.Name != expectedConstraintName {
|
||||
|
Loading…
x
Reference in New Issue
Block a user