views:

926

answers:

3

I am looking setting up a deployment process for a highly customised Magento site, and was wondering how other people do this.

I will be setting up dev, UAT and prod environments. All the Magento files will be in source control (SVN). At this stage, I can't see any requirements for changing the DB, so the 3 databases will be manually maintained.

Specifically,

  • How do you apply Magento upgrades? (Individually in each env, or on dev then roll out, or just give up on upgrades?)
  • What files/folders do leave alone in each environment (e.g. magento/app/etc/local.xml)
  • Do you restrict developers to editing specific files/folders?
  • Do you restrict theme designers to editing specific files/folders?
  • How do you manage database changes?


Theme Designer Files/Folders

Designers can restricted to editing the following folders-

app/design/frontend/your_interface/your_theme/layout/
app/design/frontend/your_interface/your_theme/template/
app/design/frontend/your_interface/your_theme/locale/
skin/frontend/your_interface/your_theme/


Extension Developer Files/Folders

Extension developers can edit the following folders/files-

/app/code/local
/app/etc/modules/<Namespace>_<Module>.xml


Database environment management

As the store's base URL is stored in the database, you cannot just copy databases between environments. Options include-

+1  A: 

I use the same best practices as of any web app while developing magento. I also religiously avoid making any changes to the core files (many documents on the magento wiki ask you to modify core files).

Rick J
A: 

I use git to manage all of my Magento projects and deployments. It's much easier to merge new versions, especially if you use the Magento mirror I maintain on github. (GitHub Magento Mirror)

As for you specific question about where the base url is stored in the DB, try this:

SELECT * FROM core_config_data WHERE path = "web/secure/base_url" OR path = "web/unsecure/base_url";
A: 

You can avoid the DB-Manipulation (in german): http://blog.tudock.de/startseite/beitrag/2010/09/17/deployment-prozess-eines-magento-shops.html

Felix