From c2c1dd1fc80c16f466ab889a29c787840b7c6d21 Mon Sep 17 00:00:00 2001 From: Jay Taylor Date: Tue, 23 Jun 2015 15:27:21 -0700 Subject: [PATCH] Fix errors being inaccessible due to errors being set on different *DB instance than what is returned. --- main.go | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/main.go b/main.go index c3a1629c..ff7182bf 100644 --- a/main.go +++ b/main.go @@ -396,28 +396,33 @@ func (s *DB) AutoMigrate(values ...interface{}) *DB { } func (s *DB) ModifyColumn(column string, typ string) *DB { - s.clone().NewScope(s.Value).modifyColumn(column, typ) - return s + scope := s.clone().NewScope(s.Value) + scope.modifyColumn(column, typ) + return scope.db } func (s *DB) DropColumn(column string) *DB { - s.clone().NewScope(s.Value).dropColumn(column) - return s + scope := s.clone().NewScope(s.Value) + scope.dropColumn(column) + return scope.db } func (s *DB) AddIndex(indexName string, column ...string) *DB { - s.clone().NewScope(s.Value).addIndex(false, indexName, column...) - return s + scope := s.clone().NewScope(s.Value) + scope.addIndex(false, indexName, column...) + return scope.db } func (s *DB) AddUniqueIndex(indexName string, column ...string) *DB { - s.clone().NewScope(s.Value).addIndex(true, indexName, column...) - return s + scope := s.clone().NewScope(s.Value) + scope.addIndex(true, indexName, column...) + return scope.db } func (s *DB) RemoveIndex(indexName string) *DB { - s.clone().NewScope(s.Value).removeIndex(indexName) - return s + scope := s.clone().NewScope(s.Value) + scope.removeIndex(indexName) + return scope.db } /* @@ -427,7 +432,8 @@ Example: db.Model(&User{}).AddForeignKey("city_id", "cities(id)", "RESTRICT", "RESTRICT") */ func (s *DB) AddForeignKey(field string, dest string, onDelete string, onUpdate string) *DB { - s.clone().NewScope(s.Value).addForeignKey(field, dest, onDelete, onUpdate) + scope := s.clone().NewScope(s.Value) + scope.addForeignKey(field, dest, onDelete, onUpdate) return s }