I am familiar with using RoR in a pure development environment, that is to say that I can create a local project, access it via a web browser, update the database, etc. However, I'm having trouble figuring out how to best set up things with actual deployment in mind. Forgive me if this has been asked before, I couldn't find it easily. Right now I have a subversion repository set up for source control, and I manually FTP the trunk over to the production site when I feel like it or when it needs it. However, as a user base is developed and I may need to upgrade the database, I have nothing set up for database stuff. Honestly, I'm somewhat new to source control, so have never had to think of database upgrades as a series of smaller changes. Is the best route for this to set up any neccessary SQL scripts to alter tables and transform data? Is there then a way to automate the FTP and upgrade processes, along with perhaps putting a "site upgrade" message up for the minute or so the upgrade would take? What if, during an upgrade, a user was editing a record (which in my case may be entire pages of text), and tried to submit it while I was making database changes? Is there a way to automate checking for active sessions before the upgrade and making sure they know to wait, or perhaps queuing any activities until it's complete? Or is there a completely better scenario for actual deployment? Also does anyone have information on server scalability, like if I needed to split the application among multiple servers in the future? Is there a resource explaining how that would be accomplished? Thanks for any help! David H.
on 2006-01-25 18:42
on 2006-01-25 19:03
David ~ I think the following items will help you: Migrations for the Database* ~ http://wiki.rubyonrails.com/rails/pages/Understand... For Deployment ~ http://wiki.rubyonrails.com/rails/pages/SwitchTower ~ Ben * The greatest thing since sliced bread...
on 2006-01-25 20:39
Ben R. wrote: > I think the following items will help you: > > Migrations for the Database* ~ > http://wiki.rubyonrails.com/rails/pages/Understand... Wow. If I wasn't already in love with Rails, this just consummated it. :) Thanks very much, those two links are exactly what I need! David H.