aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2016-09-22 21:22:14 +0900
committerJeremy Daer <jeremydaer@gmail.com>2017-02-26 00:23:04 -0700
commitc92757fb68f5a281be0f2ea67e369672e9c4ec6d (patch)
tree0578c7ffc24acfc43a3161dec82722cbadb51574 /activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
parent31d27d5301c79c351c69b91d64e32a64b0f2b0fb (diff)
downloadrails-c92757fb68f5a281be0f2ea67e369672e9c4ec6d.tar.gz
rails-c92757fb68f5a281be0f2ea67e369672e9c4ec6d.tar.bz2
rails-c92757fb68f5a281be0f2ea67e369672e9c4ec6d.zip
Fix `change_column` to drop default with `null: false`
Currently `change_column` cannot drop default if `null: false` is specified at the same time. This change fixes the issue. ```ruby # cannot drop default change_column "tests", "contributor", :boolean, default: nil, null: false # we need the following workaround currently change_column "tests", "contributor", :boolean, null: false change_column "tests", "contributor", :boolean, default: nil ``` Closes #26582
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb')
-rw-r--r--activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb3
1 files changed, 1 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb b/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
index 16ef195bfc..f55efe7d07 100644
--- a/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
@@ -420,11 +420,10 @@ module ActiveRecord
def change_column(table_name, column_name, type, options = {}) #:nodoc:
alter_table(table_name) do |definition|
- include_default = options_include_default?(options)
definition[column_name].instance_eval do
self.type = type
self.limit = options[:limit] if options.include?(:limit)
- self.default = options[:default] if include_default
+ self.default = options[:default] if options.include?(:default)
self.null = options[:null] if options.include?(:null)
self.precision = options[:precision] if options.include?(:precision)
self.scale = options[:scale] if options.include?(:scale)