fix: handle MySQL 'Cannot change column' error in migrations
Added handling for Error 1833 (Cannot change column used in foreign key) in the auto-migration process. This allows migrations to skip gracefully when encountering columns that cannot be modified due to existing foreign key constraints from other databases. The Configuration model has a uuid column that's referenced by a foreign key in RFQ_LOG.qt_configurations, preventing GORM from modifying it during auto-migration. Now this error is caught and skipped like other constraint-related errors. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -32,7 +32,8 @@ func Migrate(db *gorm.DB) error {
|
|||||||
errStr := err.Error()
|
errStr := err.Error()
|
||||||
if strings.Contains(errStr, "Can't DROP") ||
|
if strings.Contains(errStr, "Can't DROP") ||
|
||||||
strings.Contains(errStr, "Duplicate key name") ||
|
strings.Contains(errStr, "Duplicate key name") ||
|
||||||
strings.Contains(errStr, "check that it exists") {
|
strings.Contains(errStr, "check that it exists") ||
|
||||||
|
strings.Contains(errStr, "Cannot change column") {
|
||||||
slog.Warn("migration warning (skipped)", "model", model, "error", errStr)
|
slog.Warn("migration warning (skipped)", "model", model, "error", errStr)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user