refactor(migrator): non-standard codes (#6180)
This commit is contained in:
		
							parent
							
								
									1d9f4b0f55
								
							
						
					
					
						commit
						05bb9d6106
					
				| @ -22,7 +22,7 @@ func (idx Index) Name() string { | ||||
| 	return idx.NameValue | ||||
| } | ||||
| 
 | ||||
| // Columns return the columns fo the index
 | ||||
| // Columns return the columns of the index
 | ||||
| func (idx Index) Columns() []string { | ||||
| 	return idx.ColumnList | ||||
| } | ||||
| @ -37,7 +37,7 @@ func (idx Index) Unique() (unique bool, ok bool) { | ||||
| 	return idx.UniqueValue.Bool, idx.UniqueValue.Valid | ||||
| } | ||||
| 
 | ||||
| // Option return the optional attribute fo the index
 | ||||
| // Option return the optional attribute of the index
 | ||||
| func (idx Index) Option() string { | ||||
| 	return idx.OptionValue | ||||
| } | ||||
|  | ||||
| @ -113,7 +113,7 @@ func (m Migrator) AutoMigrate(values ...interface{}) error { | ||||
| 				return err | ||||
| 			} | ||||
| 		} else { | ||||
| 			if err := m.RunWithValue(value, func(stmt *gorm.Statement) (errr error) { | ||||
| 			if err := m.RunWithValue(value, func(stmt *gorm.Statement) error { | ||||
| 				columnTypes, err := queryTx.Migrator().ColumnTypes(value) | ||||
| 				if err != nil { | ||||
| 					return err | ||||
| @ -123,7 +123,6 @@ func (m Migrator) AutoMigrate(values ...interface{}) error { | ||||
| 					parseCheckConstraints = stmt.Schema.ParseCheckConstraints() | ||||
| 				) | ||||
| 				for _, dbName := range stmt.Schema.DBNames { | ||||
| 					field := stmt.Schema.FieldsByDBName[dbName] | ||||
| 					var foundColumn gorm.ColumnType | ||||
| 
 | ||||
| 					for _, columnType := range columnTypes { | ||||
| @ -135,14 +134,17 @@ func (m Migrator) AutoMigrate(values ...interface{}) error { | ||||
| 
 | ||||
| 					if foundColumn == nil { | ||||
| 						// not found, add column
 | ||||
| 						if err := execTx.Migrator().AddColumn(value, dbName); err != nil { | ||||
| 						if err = execTx.Migrator().AddColumn(value, dbName); err != nil { | ||||
| 							return err | ||||
| 						} | ||||
| 					} else if err := execTx.Migrator().MigrateColumn(value, field, foundColumn); err != nil { | ||||
| 						// found, smart migrate
 | ||||
| 					} else { | ||||
| 						// found, smartly migrate
 | ||||
| 						field := stmt.Schema.FieldsByDBName[dbName] | ||||
| 						if err = execTx.Migrator().MigrateColumn(value, field, foundColumn); err != nil { | ||||
| 							return err | ||||
| 						} | ||||
| 					} | ||||
| 				} | ||||
| 
 | ||||
| 				if !m.DB.DisableForeignKeyConstraintWhenMigrating && !m.DB.IgnoreRelationshipsWhenMigrating { | ||||
| 					for _, rel := range stmt.Schema.Relationships.Relations { | ||||
| @ -195,7 +197,7 @@ func (m Migrator) GetTables() (tableList []string, err error) { | ||||
| func (m Migrator) CreateTable(values ...interface{}) error { | ||||
| 	for _, value := range m.ReorderModels(values, false) { | ||||
| 		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) (err error) { | ||||
| 			var ( | ||||
| 				createTableSQL          = "CREATE TABLE ? (" | ||||
| 				values                  = []interface{}{m.CurrentTable(stmt)} | ||||
| @ -214,7 +216,7 @@ func (m Migrator) CreateTable(values ...interface{}) error { | ||||
| 
 | ||||
| 			if !hasPrimaryKeyInDataType && len(stmt.Schema.PrimaryFields) > 0 { | ||||
| 				createTableSQL += "PRIMARY KEY ?," | ||||
| 				primaryKeys := []interface{}{} | ||||
| 				primaryKeys := make([]interface{}, 0, len(stmt.Schema.PrimaryFields)) | ||||
| 				for _, field := range stmt.Schema.PrimaryFields { | ||||
| 					primaryKeys = append(primaryKeys, clause.Column{Name: field.DBName}) | ||||
| 				} | ||||
| @ -225,8 +227,8 @@ func (m Migrator) CreateTable(values ...interface{}) error { | ||||
| 			for _, idx := range stmt.Schema.ParseIndexes() { | ||||
| 				if m.CreateIndexAfterCreateTable { | ||||
| 					defer func(value interface{}, name string) { | ||||
| 						if errr == nil { | ||||
| 							errr = tx.Migrator().CreateIndex(value, name) | ||||
| 						if err == nil { | ||||
| 							err = tx.Migrator().CreateIndex(value, name) | ||||
| 						} | ||||
| 					}(value, idx.Name) | ||||
| 				} else { | ||||
| @ -276,8 +278,8 @@ func (m Migrator) CreateTable(values ...interface{}) error { | ||||
| 				createTableSQL += fmt.Sprint(tableOption) | ||||
| 			} | ||||
| 
 | ||||
| 			errr = tx.Exec(createTableSQL, values...).Error | ||||
| 			return errr | ||||
| 			err = tx.Exec(createTableSQL, values...).Error | ||||
| 			return err | ||||
| 		}); err != nil { | ||||
| 			return err | ||||
| 		} | ||||
| @ -498,7 +500,7 @@ func (m Migrator) MigrateColumn(value interface{}, field *schema.Field, columnTy | ||||
| 		currentDefaultNotNull := field.HasDefaultValue && (field.DefaultValueInterface != nil || !strings.EqualFold(field.DefaultValue, "NULL")) | ||||
| 		dv, dvNotNull := columnType.DefaultValue() | ||||
| 		if dvNotNull && !currentDefaultNotNull { | ||||
| 			// defalut value -> null
 | ||||
| 			// default value -> null
 | ||||
| 			alterColumn = true | ||||
| 		} else if !dvNotNull && currentDefaultNotNull { | ||||
| 			// null -> default value
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 jessetang
						jessetang