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.
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 .gitignore
things 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.php
file and use it as a template, name it something like wp-config.php.<your branch name>
, add it to the version tree and fill it with the basic development configuration, so developers can just keep their wp-config.php
untouched 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 uploads
repository in the development server, and mount it as a local directory, so an upload to the site that creates a new entry in wp_posts
will also sync the file with other developers. Leave the mount information in a README
or even in the wp-config.php.<branch>
file. You can use a Samba share or even a SSHFS command line like:
sshfs user@server:/path/project-uploads wp-content/uploads