Skip to content
Browse files

Merge pull request #9964 from where/using-schema-dump

Dump the 'using' options for a SQL index into the schema.
  • Loading branch information...
2 parents 57fbcc5 + a89e9f7 commit 0739d146bcd31247391d64b852885634d78e576d @rafaelfranca rafaelfranca committed Mar 27, 2013
View
2 activerecord/lib/active_record/schema_dumper.rb
@@ -185,6 +185,8 @@ def indexes(table, stream)
statement_parts << ('where: ' + index.where.inspect) if index.where
+ statement_parts << ('using: ' + index.using.inspect) if index.using
+
' ' + statement_parts.join(', ')
end
View
10 activerecord/test/cases/schema_dumper_test.rb
@@ -177,13 +177,19 @@ def test_schema_dump_illegal_ignored_table_value
def test_schema_dumps_index_columns_in_right_order
index_definition = standard_dump.split(/\n/).grep(/add_index.*companies/).first.strip
- assert_equal 'add_index "companies", ["firm_id", "type", "rating"], name: "company_index"', index_definition
+ if current_adapter?(:MysqlAdapter) or current_adapter?(:Mysql2Adapter) or current_adapter?(:PostgreSQLAdapter)
+ assert_equal 'add_index "companies", ["firm_id", "type", "rating"], name: "company_index", using: :btree', index_definition
+ else
+ assert_equal 'add_index "companies", ["firm_id", "type", "rating"], name: "company_index"', index_definition
+ end
end
def test_schema_dumps_partial_indices
index_definition = standard_dump.split(/\n/).grep(/add_index.*company_partial_index/).first.strip
if current_adapter?(:PostgreSQLAdapter)
- assert_equal 'add_index "companies", ["firm_id", "type"], name: "company_partial_index", where: "(rating > 10)"', index_definition
+ assert_equal 'add_index "companies", ["firm_id", "type"], name: "company_partial_index", where: "(rating > 10)", using: :btree', index_definition
+ elsif current_adapter?(:MysqlAdapter) or current_adapter?(:Mysql2Adapter)
+ assert_equal 'add_index "companies", ["firm_id", "type"], name: "company_partial_index", using: :btree', index_definition
else
assert_equal 'add_index "companies", ["firm_id", "type"], name: "company_partial_index"', index_definition
end
View
1 activerecord/test/schema/schema.rb
@@ -183,6 +183,7 @@ def create_table(*args, &block)
add_index :companies, [:firm_id, :type, :rating], :name => "company_index"
add_index :companies, [:firm_id, :type], :name => "company_partial_index", :where => "rating > 10"
+ add_index :companies, :name, :name => 'company_name_index', :using => :btree
create_table :vegetables, :force => true do |t|
t.string :name

0 comments on commit 0739d14

Please sign in to comment.
Something went wrong with that request. Please try again.