aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/schema_dumper.rb
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2015-01-19 03:36:09 +0900
committerRyuta Kamizono <kamipo@gmail.com>2015-05-03 23:35:13 +0900
commit99801c6a7b69eb4b006a55de17ada78f3a0fa4c1 (patch)
treeaedf8ef73adb10276240a2ed1806f0bf36db9aad /activerecord/lib/active_record/schema_dumper.rb
parent5f844211bebc7a974dc3ff6d67901515369c1840 (diff)
downloadrails-99801c6a7b69eb4b006a55de17ada78f3a0fa4c1.tar.gz
rails-99801c6a7b69eb4b006a55de17ada78f3a0fa4c1.tar.bz2
rails-99801c6a7b69eb4b006a55de17ada78f3a0fa4c1.zip
Dump indexes in `create_table` instead of `add_index`
If the adapter supports indexes in create table, generated SQL is slightly more efficient.
Diffstat (limited to 'activerecord/lib/active_record/schema_dumper.rb')
-rw-r--r--activerecord/lib/active_record/schema_dumper.rb10
1 files changed, 4 insertions, 6 deletions
diff --git a/activerecord/lib/active_record/schema_dumper.rb b/activerecord/lib/active_record/schema_dumper.rb
index eaeaf0321b..bdf4329446 100644
--- a/activerecord/lib/active_record/schema_dumper.rb
+++ b/activerecord/lib/active_record/schema_dumper.rb
@@ -168,11 +168,11 @@ HEADER
tbl.puts
end
+ indexes(table, tbl)
+
tbl.puts " end"
tbl.puts
- indexes(table, tbl)
-
tbl.rewind
stream.print tbl.read
rescue => e
@@ -188,8 +188,7 @@ HEADER
if (indexes = @connection.indexes(table)).any?
add_index_statements = indexes.map do |index|
statement_parts = [
- "add_index #{remove_prefix_and_suffix(index.table).inspect}",
- index.columns.inspect,
+ "t.index #{index.columns.inspect}",
"name: #{index.name.inspect}",
]
statement_parts << 'unique: true' if index.unique
@@ -203,11 +202,10 @@ HEADER
statement_parts << "using: #{index.using.inspect}" if index.using
statement_parts << "type: #{index.type.inspect}" if index.type
- " #{statement_parts.join(', ')}"
+ " #{statement_parts.join(', ')}"
end
stream.puts add_index_statements.sort.join("\n")
- stream.puts
end
end