From e31a21bfc05475da3a2189f4238e5a152c5a36d0 Mon Sep 17 00:00:00 2001 From: li-jin-gou <1963359402@qq.com> Date: Thu, 3 Feb 2022 22:48:36 +0800 Subject: [PATCH] fix: replace empty name result in panic --- schema/naming.go | 9 ++++++++- schema/naming_test.go | 11 +++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/schema/naming.go b/schema/naming.go index 8407bffa..c10ef23e 100644 --- a/schema/naming.go +++ b/schema/naming.go @@ -120,7 +120,14 @@ func (ns NamingStrategy) toDBName(name string) string { } if ns.NameReplacer != nil { - name = ns.NameReplacer.Replace(name) + + tmpName := ns.NameReplacer.Replace(name) + + if tmpName == "" { + return name + } + + name = tmpName } if ns.NoLowerCase { diff --git a/schema/naming_test.go b/schema/naming_test.go index c3e6bf92..1fdab9a0 100644 --- a/schema/naming_test.go +++ b/schema/naming_test.go @@ -197,3 +197,14 @@ func TestFormatNameWithStringLongerThan64Characters(t *testing.T) { t.Errorf("invalid formatted name generated, got %v", formattedName) } } + +func TestReplaceEmptyTableName(t *testing.T) { + ns := NamingStrategy{ + SingularTable: true, + NameReplacer: strings.NewReplacer("Model", ""), + } + tableName := ns.TableName("Model") + if tableName != "Model" { + t.Errorf("invalid table name generated, got %v", tableName) + } +}