Is there a straightforward way to share/sync multiple WP instances with a single database? I work collaboratively with several developers on custom themed sites. We use git to keep our files in order and it’s all fine in the early stages, but once content, plugins etc. start coming into play, we have issues with staying in sync with content.
Is there a decent solution over than tossing the SQL file around? That gets old pretty fast and doesn’t work very well.
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
Yes. Use WP_HOME and WP_SITEURL in your wp-config.php, so the URLs in the database won’t mess (a lot) with local site development.
define ('WP_HOME', 'http://local/site/url');
define ('WP_SITEURL', 'http://local/site/url');
Also, some other good practices:
-
Put in your
.gitignorethings like:wp-config.php wp-content/uploads wp-content/cache wp-content ... # Everything that is created by users .htaccess
-
Make a copy of the
wp-config.phpfile and use it as a template, name it something likewp-config.php.<your branch name>, add it to the version tree and fill it with the basic development configuration, so developers can just keep theirwp-config.phpuntouched by Git, but can also apply new configuration sets that may be required by other functionality. -
You can also create a
wp-config.php.<branch>for each environment the site runs (development, homologation, production). -
Create a remote
uploadsrepository in the development server, and mount it as a local directory, so an upload to the site that creates a new entry inwp_postswill also sync the file with other developers. Leave the mount information in aREADMEor even in thewp-config.php.<branch>file. You can use a Samba share or even a SSHFS command line like:sshfs <a href="https://getridbug.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="8afff9eff8caf9eff8fceff8">[email protected]</a>:/path/project-uploads wp-content/uploads
Method 2
No there isn’t.
Sure you can all connect to the same DB, I prefer a technique like this http://markjaquith.wordpress.com/2011/06/24/wordpress-local-dev-tips/ ,but syncing actual content and unique ID’s/values stored in the database is a problem. You can hack a script that cleans everything up but it’s often easier to just have one person/machine doing actual content changes.
It’s easier to just dump the database each day or export the content using WordPress’s native exporter and commit it as well. Also using a CDN for images helps.
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0