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:
Mikhail Chusavitin
2026-02-10 15:25:17 +03:00
parent c47c93ab31
commit 70bcb428cc

View File

@@ -32,7 +32,8 @@ func Migrate(db *gorm.DB) error {
errStr := err.Error()
if strings.Contains(errStr, "Can't DROP") ||
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)
continue
}