Make migrator works with dbresolver, close #3992
This commit is contained in:
		
							parent
							
								
									f8bd4c4875
								
							
						
					
					
						commit
						59c01b7943
					
				| @ -82,7 +82,7 @@ func (m Migrator) FullDataTypeOf(field *schema.Field) (expr clause.Expr) { | |||||||
| // AutoMigrate
 | // AutoMigrate
 | ||||||
| func (m Migrator) AutoMigrate(values ...interface{}) error { | func (m Migrator) AutoMigrate(values ...interface{}) error { | ||||||
| 	for _, value := range m.ReorderModels(values, true) { | 	for _, value := range m.ReorderModels(values, true) { | ||||||
| 		tx := m.DB.Session(&gorm.Session{NewDB: true}) | 		tx := m.DB.Session(&gorm.Session{}) | ||||||
| 		if !tx.Migrator().HasTable(value) { | 		if !tx.Migrator().HasTable(value) { | ||||||
| 			if err := tx.Migrator().CreateTable(value); err != nil { | 			if err := tx.Migrator().CreateTable(value); err != nil { | ||||||
| 				return err | 				return err | ||||||
| @ -154,7 +154,7 @@ func (m Migrator) AutoMigrate(values ...interface{}) error { | |||||||
| 
 | 
 | ||||||
| func (m Migrator) CreateTable(values ...interface{}) error { | func (m Migrator) CreateTable(values ...interface{}) error { | ||||||
| 	for _, value := range m.ReorderModels(values, false) { | 	for _, value := range m.ReorderModels(values, false) { | ||||||
| 		tx := m.DB.Session(&gorm.Session{NewDB: true}) | 		tx := m.DB.Session(&gorm.Session{}) | ||||||
| 		if err := m.RunWithValue(value, func(stmt *gorm.Statement) (errr error) { | 		if err := m.RunWithValue(value, func(stmt *gorm.Statement) (errr error) { | ||||||
| 			var ( | 			var ( | ||||||
| 				createTableSQL          = "CREATE TABLE ? (" | 				createTableSQL          = "CREATE TABLE ? (" | ||||||
| @ -239,7 +239,7 @@ func (m Migrator) CreateTable(values ...interface{}) error { | |||||||
| func (m Migrator) DropTable(values ...interface{}) error { | func (m Migrator) DropTable(values ...interface{}) error { | ||||||
| 	values = m.ReorderModels(values, false) | 	values = m.ReorderModels(values, false) | ||||||
| 	for i := len(values) - 1; i >= 0; i-- { | 	for i := len(values) - 1; i >= 0; i-- { | ||||||
| 		tx := m.DB.Session(&gorm.Session{NewDB: true}) | 		tx := m.DB.Session(&gorm.Session{}) | ||||||
| 		if err := m.RunWithValue(values[i], func(stmt *gorm.Statement) error { | 		if err := m.RunWithValue(values[i], func(stmt *gorm.Statement) error { | ||||||
| 			return tx.Exec("DROP TABLE IF EXISTS ?", m.CurrentTable(stmt)).Error | 			return tx.Exec("DROP TABLE IF EXISTS ?", m.CurrentTable(stmt)).Error | ||||||
| 		}); err != nil { | 		}); err != nil { | ||||||
| @ -406,7 +406,7 @@ func (m Migrator) MigrateColumn(value interface{}, field *schema.Field, columnTy | |||||||
| func (m Migrator) ColumnTypes(value interface{}) (columnTypes []gorm.ColumnType, err error) { | func (m Migrator) ColumnTypes(value interface{}) (columnTypes []gorm.ColumnType, err error) { | ||||||
| 	columnTypes = make([]gorm.ColumnType, 0) | 	columnTypes = make([]gorm.ColumnType, 0) | ||||||
| 	err = m.RunWithValue(value, func(stmt *gorm.Statement) error { | 	err = m.RunWithValue(value, func(stmt *gorm.Statement) error { | ||||||
| 		rows, err := m.DB.Session(&gorm.Session{NewDB: true}).Table(stmt.Table).Limit(1).Rows() | 		rows, err := m.DB.Session(&gorm.Session{}).Table(stmt.Table).Limit(1).Rows() | ||||||
| 		if err == nil { | 		if err == nil { | ||||||
| 			defer rows.Close() | 			defer rows.Close() | ||||||
| 			rawColumnTypes, err := rows.ColumnTypes() | 			rawColumnTypes, err := rows.ColumnTypes() | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Jinzhu
						Jinzhu