Vote up!
Vote down!

Best practice for deploying content & structure in Drupal Commerce and for syncing between separate DC instances

What would be the best practice to deploy content & sync structure between two separate Drupal Commerce instances (separate hosts, separate databases)?

It looks like there are several options available at the moment:

1. Simply sync databases (by export/impot) - both for structure & content migration.
It can be suitable for whole server's migration and I guess for staging/production setup in some cases - if one know which tables to sync exactly.

2. Use Commerce Migrate Module.
A little documentation is available for this one..

3. Use Features Module.
I guess it is good for exporting structure only, not content.

4. Use Deploy Module.
Should be ideal for staging/production setup, but it looks like Commerce entities are not fully supported by Deploy at the moment and one has to add UUID's support manually. Also Deploy for 7.x seems not capable of syncing structure (for example taxonomy vocabs should be recreated manually on both servers or synced by Features module somehow).

So, what's the recommended way to sync structure/content between separate DC setups ?

And, specifically, which database tables one should sync between DC separate setups to have identical product stock, but without syncing users (customer profiles) & orders ?

Asked by: bypass
on October 28, 2012

2 Answers

Vote up!
Vote down!

There is no one recommended solution but syncing database tables is generally not recommended.

One question is, is there a master/slave relationship between the two sites? You may need a third 'master' product data site.

Feeds could also be a good solution to pull content changes from a master to a slave site.

You may also want to consider using http://drupal.org/project/migrate_parcel with the migrate module.

David Kitchen
Answer by: David Kitchen
Posted: Nov 1, 2012
Vote up!
Vote down!

Thanks for the info, I'll look into migrate_parcel definitely.

My own setup is quite specific and it invloves using translations (for multi-language). Translations make any migration even more troublesome as it is, as I've found out.

Long story short, what I've been able to find:

1. Syncing database is possible ofc, and finding out the right tables is not really hard, but it's a very raw & error-prone approach indeed.

2. Deploy module could be very useful, but unfortunately as of this moment Commerce Services Resources does not support creating/updating Commerce Product entities and it's far down the road according to the module's roadmap.

3. Migrate module is very powerful obviously but one needs to understand API to get any results out of it.

So far I'm leaning towards:
* using Features Module to update structure
* using Feeds Module to update content, also utilizing UUIDs to keep track on all of the imported entities & their references.

Answer by: bypass
Posted: Nov 2, 2012