Share your unpainful development and deployment methods
This is an open discussion with 2 replies, filed under General.
Search
As I've talked about in the past, we use capistrano as the deployment tool for all our Symphony (and Rails) sites. The advantages are:
- Scripted means it's hard to stuff up.
- Each release is archived (we keep the 10 latest releases), so you can roll them back immediately. The latest release is simple symlinked.
- Each release is a separate
git clone
so less chance of conflicts during deploys. - You can add additional steps to your deployment process on a per-site basis. For example, symlinking to a shared assets directory that users can FTP to, or scripting DB imports/backups.
- It's easy.
Given that we do a bit of ruby stuff alongside our Symphony work, I use rvm
and bundler
to keep things clean and the various versions of things tracked alongside the app development.
We use Rowan's approach at work. It's a one time setup and usually works pretty well for us.
The most painful thing is CMS updates. Because we commit /symphony
as part of site, it often conflicts when trying to pull from the official repo (and it sees the version in the 'site' as more recent then the one in the repo, at least that's my theory). We get around this fairly manually by just copying the /symphony
folder over the one in the repo and manually updating the submodules.
I think storing the 'symphony' repo as a separate branch would solve this issue, but I'm yet to test it.
Create an account or sign in to comment.
Hi everyone,
Despite having composed some of the docs about this, I'm still searching for a better personal development workflow than my current mess of a setup. Basically, I want the least number of tools and git commands/GUIs in my way of doing actual work, but I need version control and somewhat painless syncing between dev and prod sites. I don't really care about DB syncing, I'll do it manually. And I'd like to avoid needing god-like git ninja skillz to do common stuff.
It seems this has come up quite often already, so whenever I have something reasonable going, I'll happily assemble an article summarizing the various options. (At the moment I'm trying to avoid kitchen sink stuff like Capistrano or Deploy but that would probably be in the article.)
My current plan is to develop my Symphony projects on my local Mac's Apache (in subdirs of localhost), and push changes to personal Github repos using git remotes. Then deployment to production would consist of a
git pull
from the Github repo, probably also using gitignore for config.php and .htaccess files. But I'm surely missing some gotchas here.Interested in any ideas from folks who have something serviceable and fairly pleasant!