diff options
author | Yasuo Honda <yasuo.honda@gmail.com> | 2019-01-22 10:41:36 +0000 |
---|---|---|
committer | Yasuo Honda <yasuo.honda@gmail.com> | 2019-01-22 15:15:52 +0000 |
commit | 3ea3cccc93a375dcc4ddd8279b500fc0732a5a77 (patch) | |
tree | 425598debea32ca4d0204dc1caa2d4be9b82c106 | |
parent | 3f0c7c5580e67120b2a42552c3624b4e552aa721 (diff) | |
download | rails-3ea3cccc93a375dcc4ddd8279b500fc0732a5a77.tar.gz rails-3ea3cccc93a375dcc4ddd8279b500fc0732a5a77.tar.bz2 rails-3ea3cccc93a375dcc4ddd8279b500fc0732a5a77.zip |
MySQL 8.0.14 adds `ER_FK_INCOMPATIBLE_COLUMNS`
https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-14.html
> Error messages relating to creating and dropping foreign keys
> were improved to be more specific and informative. (Bug #28526309, Bug #92087)
https://dev.mysql.com/doc/refman/8.0/en/server-error-reference.html
> Error number: 3780; Symbol: ER_FK_INCOMPATIBLE_COLUMNS; SQLSTATE: HY000
> Message: Referencing column '%s' and referenced column '%s' in foreign key constraint '%s' are incompatible.
> ER_FK_INCOMPATIBLE_COLUMNS was added in 8.0.14.
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb index 70d281b62b..5479ddab71 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb @@ -627,6 +627,7 @@ module ActiveRecord ER_LOCK_WAIT_TIMEOUT = 1205 ER_QUERY_INTERRUPTED = 1317 ER_QUERY_TIMEOUT = 3024 + ER_FK_INCOMPATIBLE_COLUMNS = 3780 def translate_exception(exception, message:, sql:, binds:) case error_number(exception) @@ -634,7 +635,7 @@ module ActiveRecord RecordNotUnique.new(message, sql: sql, binds: binds) when ER_NO_REFERENCED_ROW, ER_ROW_IS_REFERENCED, ER_ROW_IS_REFERENCED_2, ER_NO_REFERENCED_ROW_2 InvalidForeignKey.new(message, sql: sql, binds: binds) - when ER_CANNOT_ADD_FOREIGN + when ER_CANNOT_ADD_FOREIGN, ER_FK_INCOMPATIBLE_COLUMNS mismatched_foreign_key(message, sql: sql, binds: binds) when ER_CANNOT_CREATE_TABLE if message.include?("errno: 150") |