diff options
author | Ryuta Kamizono <kamipo@gmail.com> | 2015-01-19 03:36:09 +0900 |
---|---|---|
committer | Ryuta Kamizono <kamipo@gmail.com> | 2015-05-03 23:35:13 +0900 |
commit | 99801c6a7b69eb4b006a55de17ada78f3a0fa4c1 (patch) | |
tree | aedf8ef73adb10276240a2ed1806f0bf36db9aad /activerecord/lib | |
parent | 5f844211bebc7a974dc3ff6d67901515369c1840 (diff) | |
download | rails-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')
-rw-r--r-- | activerecord/lib/active_record/schema_dumper.rb | 10 |
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 |