aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/abstract
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2018-01-26 12:42:28 +0900
committerGitHub <noreply@github.com>2018-01-26 12:42:28 +0900
commit8baca31dbe522cb407f0b3b8c8d3d4a6804e5aed (patch)
tree71408d810bd7b9dc6770f3eea70122d46c2a2bfe /activerecord/lib/active_record/connection_adapters/abstract
parent301cd91c0d1bfb67344a963e0859e214753fcbfe (diff)
downloadrails-8baca31dbe522cb407f0b3b8c8d3d4a6804e5aed.tar.gz
rails-8baca31dbe522cb407f0b3b8c8d3d4a6804e5aed.tar.bz2
rails-8baca31dbe522cb407f0b3b8c8d3d4a6804e5aed.zip
Bring back ability to insert zero value on primary key for fixtures (#31795)
Since #29504, mysql2 adapter lost ability to insert zero value on primary key due to enforce `NO_AUTO_VALUE_ON_ZERO` disabled. That is for using `DEFAULT` on auto increment column, but we can use `NULL` instead in that case.
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/abstract')
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb5
1 files changed, 4 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb b/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb
index d663b59444..08f3e15a4b 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb
@@ -414,6 +414,9 @@ module ActiveRecord
alias join_to_delete join_to_update
private
+ def default_insert_value(column)
+ Arel.sql("DEFAULT")
+ end
def build_fixture_sql(fixtures, table_name)
columns = schema_cache.columns_hash(table_name)
@@ -432,7 +435,7 @@ module ActiveRecord
bind = Relation::QueryAttribute.new(name, fixture[name], type)
with_yaml_fallback(bind.value_for_database)
else
- Arel.sql("DEFAULT")
+ default_insert_value(column)
end
end
end