aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/migration/compatibility.rb
diff options
context:
space:
mode:
authorMatthew Draper <matthew@trebex.net>2017-12-03 04:19:27 +1030
committerGitHub <noreply@github.com>2017-12-03 04:19:27 +1030
commit6a7787218b8d75913b58d7bed198495e8d29e34e (patch)
treeec324f35f9dd2d839016579855c2dac0a6dde90a /activerecord/lib/active_record/migration/compatibility.rb
parent4c4d092431f45471f90badb81eaa2011843cc39b (diff)
parentdd6338a0699f2301d4b2fc8653688b4c4183cee5 (diff)
downloadrails-6a7787218b8d75913b58d7bed198495e8d29e34e.tar.gz
rails-6a7787218b8d75913b58d7bed198495e8d29e34e.tar.bz2
rails-6a7787218b8d75913b58d7bed198495e8d29e34e.zip
Merge pull request #31230 from dinahshi/postgresql_extract_sql
Extract sql fragment generators from PostgreSQL adapter
Diffstat (limited to 'activerecord/lib/active_record/migration/compatibility.rb')
-rw-r--r--activerecord/lib/active_record/migration/compatibility.rb9
1 files changed, 9 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/migration/compatibility.rb b/activerecord/lib/active_record/migration/compatibility.rb
index c979aaf0a0..da307c1723 100644
--- a/activerecord/lib/active_record/migration/compatibility.rb
+++ b/activerecord/lib/active_record/migration/compatibility.rb
@@ -16,6 +16,15 @@ module ActiveRecord
V5_2 = Current
class V5_1 < V5_2
+ if adapter_name == "PostgreSQL"
+ def change_column(table_name, column_name, type, options = {})
+ unless options[:null] || options[:default].nil?
+ column = connection.send(:column_for, table_name, column_name)
+ connection.execute("UPDATE #{connection.quote_table_name(table_name)} SET #{connection.quote_column_name(column_name)}=#{connection.quote_default_expression(options[:default], column)} WHERE #{connection.quote_column_name(column_name)} IS NULL") if column
+ end
+ connection.change_column(table_name, column_name, type, options)
+ end
+ end
end
class V5_0 < V5_1