Reputation: 815
We want to set up a development server, initially identical to a production server, for the development of new features on a Drupal 7 site. We wish to periodically import all user data and user-generated content from the production to the development server. This data includes, but is not limited to:
Users (including custom user field data)
Profile2 profiles (associated with most users)
User-created nodes and their comments
User Relationships data
Private Message data
Organic Groups data
User-uploaded files
Maybe logs.
All these may be new, or may be modifications of existing data.
Changes made on the development server may include any or all of:
New, modified, activated or deactivated modules, Views, Rules, etc.
Modified settings of all sorts
Data model modifications (new, changed, removed custom fields on node types and/or users)
Theme updates/changes
CSS changes.
Due to the wide variety of change types (and other reasons) we'd like to import the user and content data from the live site to the development site, then make the development site live. Somewhat similar to https://www.drupal.org/node/942540 but without the brute-force database drop/import.
Looking for a robust, simple method, it does not have to be elegant. Not a piecemeal/manual method where we have to keep track of every change item.
We have looked at many possibilities (starting with the Comparison of Content and User Import/Export Modules at https://groups.drupal.org/node/21338); here are some that appear partially useful but we have found to be inadequate.
Node export module https://www.drupal.org/project/node_export I understand that this is not just plug and play and that it may need to be configured for individual nodes, utilize other modules and may simply not work with certain fields.
Feeds module https://www.drupal.org/project/feeds Import or aggregate data as nodes, users, taxonomy terms or simple database records.
Migrate module https://www.drupal.org/project/migrate Provides a flexible framework for migrating content into Drupal from other sources (e.g., when converting a web site from another CMS to Drupal).
Drupal Sync module https://www.drupal.org/project/drupal_sync Allows synchronizing content among multiple websites.
Account Sync module
https://www.drupal.org/project/account_sync
Allows you to synchronize drupal user account data across multiple Drupal sites.
Supports only "basic" syncing - may not permit custom user fields, User Relationships data, Private Messages, etc.
Deploy - Content Staging module https://www.drupal.org/project/deploy Allows users to easily stage content from one Drupal site to another.
Does anyone have experience of doing this, either using one or more Drupal tools, or some other selective synchronization/versioning system?
Upvotes: 1
Views: 720
Reputation: 521
So, you should take a look at the Backup and Migrate module. Once your two environments are set up, you should be able to use the "Advanced" section to exclude all of the tables EXCEPT the tables that you're interested in synchronizing to be able to easily port the user info from one site to the other. This will not copy over any files uploaded the site by the user, but should meet the rest of your requirements. I learned about this when trying to find solutions to synchronize webform submissions between a production and development server.
Upvotes: 1