From 90462aa167ef52d05735731f4a0677b534830cdd Mon Sep 17 00:00:00 2001 From: almas1992 Date: Thu, 6 Feb 2025 15:18:15 +0800 Subject: [PATCH] feat: [#572] add rename column compiler --- grammar.go | 8 ++++++++ grammar_test.go | 15 +++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/grammar.go b/grammar.go index 9ce5348..8b0cd4b 100644 --- a/grammar.go +++ b/grammar.go @@ -202,6 +202,14 @@ func (r *Grammar) CompileRename(blueprint contractsschema.Blueprint, command *co return fmt.Sprintf("alter table %s rename to %s", r.wrap.Table(blueprint.GetTableName()), r.wrap.Table(command.To)) } +func (r *Grammar) CompileRenameColumn(_ contractsschema.Schema, blueprint contractsschema.Blueprint, command *contractsschema.Command) (string, error) { + return fmt.Sprintf("alter table %s rename column %s to %s", + r.wrap.Table(blueprint.GetTableName()), + r.wrap.Column(command.From), + r.wrap.Column(command.To), + ), nil +} + func (r *Grammar) CompileRenameIndex(s contractsschema.Schema, blueprint contractsschema.Blueprint, command *contractsschema.Command) []string { indexes, err := s.GetIndexes(blueprint.GetTableName()) if err != nil { diff --git a/grammar_test.go b/grammar_test.go index 9668a35..376e41e 100644 --- a/grammar_test.go +++ b/grammar_test.go @@ -156,6 +156,21 @@ func (s *GrammarSuite) TestCompileIndex() { s.Equal(`create index "users" on "goravel_users" ("role_id", "permission_id")`, s.grammar.CompileIndex(mockBlueprint, command)) } +func (s *GrammarSuite) TestCompileRenameColumn() { + mockBlueprint := mocksschema.NewBlueprint(s.T()) + mockColumn := mocksschema.NewColumnDefinition(s.T()) + + mockBlueprint.EXPECT().GetTableName().Return("users").Once() + + sql := s.grammar.CompileRenameColumn(nil, mockBlueprint, &contractsschema.Command{ + Column: mockColumn, + From: "before", + To: "after", + }) + + s.Equal(`alter table "goravel_users" rename column "before" to "after"`, sql) +} + func (s *GrammarSuite) TestCompileRenameIndex() { var ( mockSchema *mocksschema.Schema