From 3b699fdf3e6cebd6fdb4539438e96b93e59a5bb9 Mon Sep 17 00:00:00 2001 From: Maxim Lanin Date: Thu, 16 Feb 2017 18:58:35 +0300 Subject: [PATCH] Add AddColumn method --- main.go | 7 +++++++ scope.go | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/main.go b/main.go index 9ea10909..dece6bed 100644 --- a/main.go +++ b/main.go @@ -552,6 +552,13 @@ func (s *DB) AutoMigrate(values ...interface{}) *DB { return db } +// AddColumn add column with type +func (s *DB) AddColumn(column string, typ string) *DB { + scope := s.clone().NewScope(s.Value) + scope.addColumn(column, typ) + return scope.db +} + // ModifyColumn modify column to type func (s *DB) ModifyColumn(column string, typ string) *DB { scope := s.clone().NewScope(s.Value) diff --git a/scope.go b/scope.go index 45f7185f..ea6c692e 100644 --- a/scope.go +++ b/scope.go @@ -1124,6 +1124,10 @@ func (scope *Scope) dropTable() *Scope { return scope } +func (scope *Scope) addColumn(column string, typ string) { + scope.Raw(fmt.Sprintf("ALTER TABLE %v ADD %v %v", scope.QuotedTableName(), scope.Quote(column), typ)).Exec() +} + func (scope *Scope) modifyColumn(column string, typ string) { scope.Raw(fmt.Sprintf("ALTER TABLE %v MODIFY %v %v", scope.QuotedTableName(), scope.Quote(column), typ)).Exec() }