diff options
author | Matthew Draper <matthew@trebex.net> | 2017-12-03 04:19:27 +1030 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-12-03 04:19:27 +1030 |
commit | 6a7787218b8d75913b58d7bed198495e8d29e34e (patch) | |
tree | ec324f35f9dd2d839016579855c2dac0a6dde90a /activerecord/lib/active_record/migration/compatibility.rb | |
parent | 4c4d092431f45471f90badb81eaa2011843cc39b (diff) | |
parent | dd6338a0699f2301d4b2fc8653688b4c4183cee5 (diff) | |
download | rails-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.rb | 9 |
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 |