From 751810106327ff0e5d0de707ce6be62397141862 Mon Sep 17 00:00:00 2001 From: Matias Grunberg Date: Mon, 19 Apr 2021 21:09:47 -0300 Subject: [PATCH 1/2] Add support for "if_exists" on "remove_column" See https://github.com/rails/rails/commit/95ed7e7809a9f5939ffb8dc9232e7739c39d9778 --- .../connection_adapters/sqlserver/schema_statements.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/active_record/connection_adapters/sqlserver/schema_statements.rb b/lib/active_record/connection_adapters/sqlserver/schema_statements.rb index 7bb1fa5b2..dadca051d 100644 --- a/lib/active_record/connection_adapters/sqlserver/schema_statements.rb +++ b/lib/active_record/connection_adapters/sqlserver/schema_statements.rb @@ -130,8 +130,9 @@ def rename_table(table_name, new_name) rename_table_indexes(table_name, new_name) end - def remove_column(table_name, column_name, type = nil, options = {}) + def remove_column(table_name, column_name, type = nil, **options) raise ArgumentError.new("You must specify at least one column name. Example: remove_column(:people, :first_name)") if column_name.is_a? Array + return if options[:if_exists] == true && !column_exists?(table_name, column_name) remove_check_constraints(table_name, column_name) remove_default_constraint(table_name, column_name) From 77b16861279bf711cd8dbef1bcc06f996aaa4d61 Mon Sep 17 00:00:00 2001 From: Matias Grunberg Date: Mon, 19 Apr 2021 21:12:04 -0300 Subject: [PATCH 2/2] add changelog item --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 38bc6660b..7ec21ec01 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ - [#885](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/pull/885) Fix the quoting of ActiveModel attributes - [#890](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/pull/890) Fix removal of invalid ordering from select statements - [#881](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/pull/881) Dump column collation to schema.rb and allow collation changes using column_change +- [#892](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/pull/892) Add support for if_exists on remove_column #### Changed