On Mon, Jan 19, 2015 at 3:35 PM, Matt Jones <al2o...@gmail.com> wrote:
> > On Jan 17, 2015, at 5:01 AM, vesan <vesan2...@gmail.com> wrote: > > > When multiple people are working on a single Rails codebase and they add > migrations with new columns (or tables) and run the migrations in different > order there is a problem with schema.rb. After this every time migrations > are run the columns swap places if the previous version of the schema.rb > file has been commited by the other developer who did run the migrations in > different order. > > > > Because of this the developers have to discard the lines where columns > swap places to keep the source control clean. Could this be fixed by > putting the tables and columns on schema.rb in alphabetical order? Or are > people relying on the database's order of the tables and columns? > > > > It seems you could implement it by sticking `.sort_by(&:name)` to > https://github.com/rails/rails/blob/3f96b6973b82ad17e443dd1d21be05996fb6fbf0/activerecord/lib/active_record/schema_dumper.rb#L134 > > There’s not a ton of evidence that column order can affect performance, > but there are definitely cases - MyISAM tables with many varchar columns, > for instance, will take longer to retrieve columns that are later in a row: > > http://explainextended.com/2009/05/21/choosing-column-order/ (YMMV, I > haven’t performed this experiment myself) > > If this is added, it should be something users can switch off. Agreed, and am personally -1 on this, as it removes information from the schema file. Instead, how about a task/tool that will update a developer's database to match the schema file? -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" group. To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-core+unsubscr...@googlegroups.com. To post to this group, send email to rubyonrails-core@googlegroups.com. Visit this group at http://groups.google.com/group/rubyonrails-core. For more options, visit https://groups.google.com/d/optout.