In order to migrate smoothly a Rails 3.0.10 application which need to grow up with many new models and controllers over rails 3.1.1, I wonder if we could just mount the old app under the new 3.1.1 leaving one team implementing the new features, while the other carefully migrate the old 3.0.10 components.
Is that possible ? Is it desirable ? If yes how can we do it ?
Any idea or experiences is welcome.
UPDATE
… we also are in a phase which every programmer is starting a new feature, with no resources for porting currently. So I said, way don’t start with many brand new self contained/tested apps (rack + sinara + old rails 3.0) driven by (mounted on) rails 3.1.1 working as a router/container ?
I’ve in mind something like Paul Dix describe in his “Service-Oriented Design with Ruby and Rails” book.
New features, can also be started over Rails 3.1.1, on top of that old 3.0 app, until the first programmer will be ready to start migration … what do you say ?
Luca
I’d recommend not doing it this way. What you end up doing is doubling your work – you now have to test every feature in multiple codebases, for little benefit.
Just upgrade the app from 3 -> 3.1 and move on with your day. It shouldn’t be hard, 3.1 is a point release and should be mostly backwards compatible.
Historically the main issue with upgrading has been 3rd party library dependencies besides Rails – they often break when rails is updated, and then you have to either fix them, rewrite them yourself, switch to another one that works on the new rails version, or just wait to upgrade until they are compatible, all which may be undesirable.
Fortunately, I don’t think a lot of gems broke in between rails 3 and 3.1 so you shouldn’t have that issue.
Edit: if you’re concerned about the changes to css/javascript/html in 3.1, I can only imagine you’re assuming the asset pipeline changes things. in my experience, it doesn’t. The asset pipeline, to my knowledge, is mostly optional. I think you can still reference css/javascript in the same manner as rails 3.0 if you want