aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/abstract
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/abstract')
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract/schema_creation.rb11
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb4
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb2
3 files changed, 8 insertions, 9 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract/schema_creation.rb b/activerecord/lib/active_record/connection_adapters/abstract/schema_creation.rb
index 57790d5667..aad4431910 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract/schema_creation.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract/schema_creation.rb
@@ -24,7 +24,7 @@ ADD CONSTRAINT #{quote_column_name(o.name)}
FOREIGN KEY (#{quote_column_name(o.column)})
REFERENCES #{quote_table_name(o.to_table)} (#{quote_column_name(o.primary_key)})
SQL
- sql << " #{dependency_sql(o.dependent)}" if o.dependent
+ sql << " #{action_sql(o.on_delete)}" if o.on_delete
sql
end
@@ -101,12 +101,11 @@ FOREIGN KEY (#{quote_column_name(o.column)})
options.include?(:default) && !(options[:null] == false && options[:default].nil?)
end
- def dependency_sql(dependency)
+ def action_sql(action = "DELETE", dependency)
case dependency
- when :nullify then "ON DELETE SET NULL"
- when :delete then "ON DELETE CASCADE"
- when :restrict then "ON DELETE RESTRICT"
- else ""
+ when :nullify then "ON #{action} SET NULL"
+ when :cascade then "ON #{action} CASCADE"
+ when :restrict then "ON #{action} RESTRICT"
end
end
end
diff --git a/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb b/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb
index 66ebf82971..2d6cf2427c 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb
@@ -38,8 +38,8 @@ module ActiveRecord
options[:primary_key]
end
- def dependent
- options[:dependent]
+ def on_delete
+ options[:on_delete]
end
end
diff --git a/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb b/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
index 0f2af2c6d2..3f72e35bb5 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
@@ -654,7 +654,7 @@ module ActiveRecord
column: options[:column],
primary_key: primary_key,
name: foreign_key_name(from_table, options),
- dependent: options.fetch(:dependent, nil)
+ on_delete: options.fetch(:on_delete, nil)
}
at = create_alter_table from_table
at.add_foreign_key to_table, options