Skip to content
This repository has been archived by the owner on Aug 6, 2023. It is now read-only.

Symlinks and Rollbacks #44

Open
jeffkreeftmeijer opened this issue Oct 5, 2010 · 6 comments
Open

Symlinks and Rollbacks #44

jeffkreeftmeijer opened this issue Oct 5, 2010 · 6 comments

Comments

@jeffkreeftmeijer
Copy link

Wouldn't it be awesome to have symlinked folders (like Capistrano does) so your app doesn't go down while deploying and possibly adding rollbacks? :)

@bjeanes
Copy link

bjeanes commented Oct 30, 2010

I think that this is incompatible with using git for deployments. Unfortunately git pushes are simply not atomic. It's the one downside to using git and bothered me in heroku too. Does webbynode put up your maintenance page during pushes? Perhaps that's the middle ground here...

@mrrooijen
Copy link
Contributor

What do you need rollbacks for though? Can't you just push an older git tag to do a rollback?

@mrrooijen
Copy link
Contributor

Also, regarding apps going down. From my experience that never happened to me, simply because when you do a push to the server, it updates the source code, but that shouldn't matter cause everything is stored into memory is it not? Then after the push and post processes finish, passenger will restart the rails app, which, on the first request again stores the new code in memory.

Where exactly, in this process, does the app go down?

@bjeanes
Copy link

bjeanes commented Oct 30, 2010

The real benefit of rollbacks as workflow items is reversing migrations etc, but you are right in that this is a fairly trivial issue

@mrrooijen
Copy link
Contributor

Well, I guess it depends on your git workflow. if you use the git-flow workflow then you have a few branches.

  • master (which is the releases/tag branch)
  • develop

And a few others.

So consider the following scenario:

You've just tagged your application as version 1.0.1 and push it live. After it's pushed you realize something terrible happened, and you need to roll back to version 1.0.0.

git push origin 1.0.0

Done. Running 1.0.0

I doubt you really need a whole rollback system, since git can easily handle it, since it is a version control utility.

Or do you see any issues with this?

@mrrooijen
Copy link
Contributor

Note: the above git syntax might not be correct, it's more about the concept of pushing. Cause this would create a tag I believe. But maybe something along these lines:

git push webbynode +1.0.0:master

Not sure if that's correct or if it works as I haven't tested it yet. But if it does I'd personally prefer to work this way, maybe have some aliases to do it this way.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants