more tracing

This commit is contained in:
Dave Shrewsberry 2024-08-01 17:23:39 -04:00
parent 38fb45fea8
commit 3198b7c219
1 changed files with 6 additions and 2 deletions

View File

@ -710,6 +710,7 @@ func (m Migrator) GuessConstraintInterfaceAndTable(stmt *gorm.Statement, name st
for _, rel := range stmt.Schema.Relationships.Relations {
if constraint := rel.ParseConstraint(); constraint != nil && constraint.Name == name {
fmt.Println(fmt.Sprintf("SHREWS --Out of Guess for relation 0 %q", constraint))
return constraint, getTable(rel)
}
}
@ -718,6 +719,7 @@ func (m Migrator) GuessConstraintInterfaceAndTable(stmt *gorm.Statement, name st
for k := range checkConstraints {
if checkConstraints[k].Field == field {
v := checkConstraints[k]
fmt.Println(fmt.Sprintf("SHREWS --Out of Guess for check %q", &v))
return &v, stmt.Table
}
}
@ -725,12 +727,14 @@ func (m Migrator) GuessConstraintInterfaceAndTable(stmt *gorm.Statement, name st
for k := range uniqueConstraints {
if uniqueConstraints[k].Field == field {
v := uniqueConstraints[k]
fmt.Println(fmt.Sprintf("SHREWS --Out of Guess for unique %q", &v))
return &v, stmt.Table
}
}
for _, rel := range stmt.Schema.Relationships.Relations {
if constraint := rel.ParseConstraint(); constraint != nil && rel.Field == field {
fmt.Println(fmt.Sprintf("SHREWS --Out of Guess for relation %q", constraint))
return constraint, getTable(rel)
}
}
@ -757,10 +761,10 @@ func (m Migrator) CreateConstraint(value interface{}, name string) error {
// DropConstraint drop constraint
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 {
if !m.HasConstraint(value, name) {
constraint, _ := m.GuessConstraintInterfaceAndTable(stmt, name)
return errors.New(fmt.Sprintf("Can't find constraint for %q, with guessed name %q", name, constraint))
return nil
}
constraint, table := m.GuessConstraintInterfaceAndTable(stmt, name)
if constraint != nil {