Yes, that's about the worse drawback I had thought about, but this issue is quite moot. One dev will only have to do a proper merge and that's it.
On Saturday, May 14, 2011 8:33:20 PM UTC-4, Tim Shaffer wrote:> Wouldn't it be better to simply add the timestamp to the migrations name and put them all into one file?Not really. Consider this simple scenario for one example of why it's a bad idea to have them in the same file.I check out the source code to our application and add a migration.You check out the source code to our application and add a different migration.If they are in the same file, we have a conflict when it's time to check in our code.If they are in separate files, there won't be any conflict when we both check in our code.
--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To post to this group, send email to rubyonra...@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-ta...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Right. It is actually a really good question you raise, and yes a merge would not be any different than two devs who have modified any other file, git handles that gracefully. One thing I thoght of that at first I thought would make a one file situation more difficult but on reflection make a one file situation easier is rolling up migrations --- once I accumulate a lot of migrations I roll them up and dump the contents of the schema into the initial migration. Having one file would allow me just to delete text and copy rather than having to delete files. Not a big deal but one less step.
On Sun, May 15, 2011 at 11:53 AM, Nicolas Buduroi <nbud...@gmail.com> wrote:On Sunday, May 15, 2011 12:44:08 PM UTC-4, DK wrote:Right. It is actually a really good question you raise, and yes a merge would not be any different than two devs who have modified any other file, git handles that gracefully. One thing I thoght of that at first I thought would make a one file situation more difficult but on reflection make a one file situation easier is rolling up migrations --- once I accumulate a lot of migrations I roll them up and dump the contents of the schema into the initial migration. Having one file would allow me just to delete text and copy rather than having to delete files. Not a big deal but one less step.
Yes, that would be a nice advantage. For Lobos, this could go one step further, as Clojure evaluates source code linearly, I could make the migrations ordered by their position into the file, thus making it really easy to reorder migrations.
Hmm. but how would that work if you have dependencies? Like if you move a migration which adds a field to a table before you create the table?
What would be cool is that you could order the file in any order by Rails would run the migrations in sequence regardless of the order in the file (I am assuming each 'migration' in the file would have some sort of id or timestamp).
Thinking more, one more advantage is that it would be easier to find changes say for a specific table. Right now I just have to grep for it unless I can read the five mile long name I have given the file.
Why go half-way? Put all the models in one file too, bundle all the
controllers in with them, and you can whip the helpers in at the
bottom (we don't need them often)
Alternatively, there's no serious issue at all with having migrations
in separate files - yes, in one file I *can* merge them in my source
control software, but if they're in their own files I don't have to
bother. For the zero benefit that one migration file over lots of
files gives me, I can avoid the extra niggle of having to resolve
merge conflicts in it.
:-/
PS What do you ever search migrations for? Everything I've ever needed
is in schema.rb, or I just look in the DB...
On 15 May 2011 18:22, Nicolas Buduroi <nbud...@gmail.com> wrote:Why go half-way? Put all the models in one file too, bundle all the
> Yeah, while thinking about this, I realized how tiring it can be to
> search/consult/erase migrations files and I'm more and more sold to put all
> migrations into one file.
controllers in with them, and you can whip the helpers in at the
bottom (we don't need them often)
Alternatively, there's no serious issue at all with having migrations
in separate files - yes, in one file I *can* merge them in my source
control software, but if they're in their own files I don't have to
bother. For the zero benefit that one migration file over lots of
files gives me, I can avoid the extra niggle of having to resolve
merge conflicts in it.
:-/
PS What do you ever search migrations for? Everything I've ever needed
is in schema.rb, or I just look in the DB...
On 15 May 2011 18:22, Nicolas Buduroi <nbud...@gmail.com> wrote:
> Yeah, while thinking about this, I realized how tiring it can be to
> search/consult/erase migrations files and I'm more and more sold to put all
> migrations into one file.Why go half-way? Put all the models in one file too, bundle all the
controllers in with them, and you can whip the helpers in at the
bottom (we don't need them often)
Alternatively, there's no serious issue at all with having migrations
in separate files - yes, in one file I *can* merge them in my source
control software, but if they're in their own files I don't have to
bother. For the zero benefit that one migration file over lots of
files gives me, I can avoid the extra niggle of having to resolve
merge conflicts in it.
PS What do you ever search migrations for? Everything I've ever needed
is in schema.rb, or I just look in the DB...