Merge 003bcc3a3556cd2891b62bdede1fdebf67d0f883 into 725aa5b5ff4c0687b06d9a01096b8e4cf96b6c9e
This commit is contained in:
		
						commit
						ef10ea03f5
					
				| @ -720,6 +720,7 @@ func (m Migrator) GuessConstraintInterfaceAndTable(stmt *gorm.Statement, name st | |||||||
| 
 | 
 | ||||||
| 	for _, rel := range stmt.Schema.Relationships.Relations { | 	for _, rel := range stmt.Schema.Relationships.Relations { | ||||||
| 		if constraint := rel.ParseConstraint(); constraint != nil && constraint.Name == name { | 		if constraint := rel.ParseConstraint(); constraint != nil && constraint.Name == name { | ||||||
|  | 			fmt.Println(fmt.Sprintf("SHREWS --Out of Guess for relation 0 %v", constraint)) | ||||||
| 			return constraint, getTable(rel) | 			return constraint, getTable(rel) | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| @ -728,6 +729,7 @@ func (m Migrator) GuessConstraintInterfaceAndTable(stmt *gorm.Statement, name st | |||||||
| 		for k := range checkConstraints { | 		for k := range checkConstraints { | ||||||
| 			if checkConstraints[k].Field == field { | 			if checkConstraints[k].Field == field { | ||||||
| 				v := checkConstraints[k] | 				v := checkConstraints[k] | ||||||
|  | 				fmt.Println(fmt.Sprintf("SHREWS --Out of Guess for check %v", &v)) | ||||||
| 				return &v, stmt.Table | 				return &v, stmt.Table | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| @ -735,12 +737,14 @@ func (m Migrator) GuessConstraintInterfaceAndTable(stmt *gorm.Statement, name st | |||||||
| 		for k := range uniqueConstraints { | 		for k := range uniqueConstraints { | ||||||
| 			if uniqueConstraints[k].Field == field { | 			if uniqueConstraints[k].Field == field { | ||||||
| 				v := uniqueConstraints[k] | 				v := uniqueConstraints[k] | ||||||
|  | 				fmt.Println(fmt.Sprintf("SHREWS --Out of Guess for unique %v", &v)) | ||||||
| 				return &v, stmt.Table | 				return &v, stmt.Table | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		for _, rel := range stmt.Schema.Relationships.Relations { | 		for _, rel := range stmt.Schema.Relationships.Relations { | ||||||
| 			if constraint := rel.ParseConstraint(); constraint != nil && rel.Field == field { | 			if constraint := rel.ParseConstraint(); constraint != nil && rel.Field == field { | ||||||
|  | 				fmt.Println(fmt.Sprintf("SHREWS --Out of Guess for relation %v", constraint)) | ||||||
| 				return constraint, getTable(rel) | 				return constraint, getTable(rel) | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| @ -767,7 +771,11 @@ func (m Migrator) CreateConstraint(value interface{}, name string) error { | |||||||
| 
 | 
 | ||||||
| // DropConstraint drop constraint
 | // DropConstraint drop constraint
 | ||||||
| func (m Migrator) DropConstraint(value interface{}, name string) error { | func (m Migrator) DropConstraint(value interface{}, name string) error { | ||||||
|  | 	fmt.Println(fmt.Sprintf("SHREWS --In Drop %q", name)) | ||||||
| 	return m.RunWithValue(value, func(stmt *gorm.Statement) error { | 	return m.RunWithValue(value, func(stmt *gorm.Statement) error { | ||||||
|  | 		if !m.HasConstraint(value, name) { | ||||||
|  | 			return nil | ||||||
|  | 		} | ||||||
| 		constraint, table := m.GuessConstraintInterfaceAndTable(stmt, name) | 		constraint, table := m.GuessConstraintInterfaceAndTable(stmt, name) | ||||||
| 		if constraint != nil { | 		if constraint != nil { | ||||||
| 			name = constraint.GetName() | 			name = constraint.GetName() | ||||||
|  | |||||||
| @ -809,6 +809,10 @@ func TestMigrateConstraint(t *testing.T) { | |||||||
| 			DB.Migrator().CreateConstraint(&User{}, name) | 			DB.Migrator().CreateConstraint(&User{}, name) | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
|  | 		if !DB.Migrator().HasConstraint(&User{}, name) { | ||||||
|  | 			t.Fatalf("failed to create constraint %v", name) | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
| 		if err := DB.Migrator().DropConstraint(&User{}, name); err != nil { | 		if err := DB.Migrator().DropConstraint(&User{}, name); err != nil { | ||||||
| 			t.Fatalf("failed to drop constraint %v, got error %v", name, err) | 			t.Fatalf("failed to drop constraint %v, got error %v", name, err) | ||||||
| 		} | 		} | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 David Shrewsberry
						David Shrewsberry