aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
diff options
context:
space:
mode:
authorGeorge Claghorn <george@basecamp.com>2018-07-30 08:40:48 -0400
committerGeorge Claghorn <george@basecamp.com>2018-07-30 09:12:55 -0400
commit59c3ed1b3f90db197000e3867f255781a02412e7 (patch)
tree7df79eea4f986183f78468c818eac1cbb3c2d731 /activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
parentcfee9feee423947cf9e6d2508a85507cca6f75f3 (diff)
downloadrails-59c3ed1b3f90db197000e3867f255781a02412e7.tar.gz
rails-59c3ed1b3f90db197000e3867f255781a02412e7.tar.bz2
rails-59c3ed1b3f90db197000e3867f255781a02412e7.zip
MySQL: Raise ActiveRecord::InvalidForeignKey for foreign-key constraint violations on delete
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb')
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb3
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 284b38ed7b..9de8242a58 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
@@ -619,6 +619,7 @@ module ActiveRecord
ER_DUP_ENTRY = 1062
ER_NOT_NULL_VIOLATION = 1048
ER_DO_NOT_HAVE_DEFAULT = 1364
+ ER_ROW_IS_REFERENCED_2 = 1451
ER_NO_REFERENCED_ROW_2 = 1452
ER_DATA_TOO_LONG = 1406
ER_OUT_OF_RANGE = 1264
@@ -633,7 +634,7 @@ module ActiveRecord
case error_number(exception)
when ER_DUP_ENTRY
RecordNotUnique.new(message)
- when ER_NO_REFERENCED_ROW_2
+ when ER_ROW_IS_REFERENCED_2, ER_NO_REFERENCED_ROW_2
InvalidForeignKey.new(message)
when ER_CANNOT_ADD_FOREIGN
mismatched_foreign_key(message)