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.

Reply via email to