Hi all,

I'm about to set up a staging server on Heroku and I'm hoping you can
check my logic before I do anything stupid.

At present, I have a production app on Heroku:

drominay-production
http://drominay-production.heroku.com
http://www.drominay.com

I am the sole developer. The latest version of the code is on my Mac,
which backs up continuously to TimeCapsule and to Dropbox. I also push
the entire code-base to Heroku whenever I'm happy with the state of
the code:

git add .
git commit -a -m "here's what's new"
git push heroku master

So far, I haven't had a reason to teach myself how to branch the code
in git. I just build one feature at a time, commit regularly, and push
the entire code base when it's ready.

My goals are:

1. Continue to store the latest version of the code locally
2. Whenever I'm happy with the state of the code, push to a new app,
drominay-staging, for a final check
3. Copy the database from drominay-production to drominay-staging to
ensure the final check is robust
4. Prevent the public from accessing drominay-staging, while creating
a separate code base
5. Minimize complications

Here's what I propose to do:

1. Create drominay-staging

    A. heroku create
    B. heroku rename drominay-staging --app 77-green-bears-or-whatever-
heroku-names-it-originally

2. Lock drominay-staging without creating two code bases

    A. heroku config:add RACK_ENV=staging --app drominay-staging
    B. Surround most of declarative_authorization's rules for the
guest role with conditions like 'unless RACK_ENV == "staging"'

3. Test the current code and live database on drominay-staging

    A.  git push heroku master --app drominay-staging
    B.  heroku rake db:migrate -app drominay-staging
    C.  heroku db:pull sqlite://backup.db -app drominay-production
    D.  heroku db:push sqlite://backup.db -app drominay-staging

4. Backup live database and then push code base to live app

    A.  heroku db:pull sqlite://backup.db -app drominay-production
    B.  git push heroku master --app drominay-production
    C.  heroku rake db:migrate -app drominay-production

If I do this, am I in for any nasty surprises?

There looks like lot's of opportunities for nasty surprises, so I
guess the next step is for me to turn this into a few trusty rake
tasks.

Many thanks in advance,

Steven.

-- 
You received this message because you are subscribed to the Google Groups 
"Heroku" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/heroku?hl=en.

Reply via email to