I’m working on a large redesign project where lots of database changes are going to take place. In order to not mix-up the current master
branch with the new redesign changes, I made a new database so I can keep things separate. The only trick is to remember to change out the database in wp-config.php
when I switch branches.
That’s not going to happen. I’ll definitely forget. Regularly.
Fortunately, you can grab the branch you’re on via php with a bit of code from user program247365 on stackoverflow.
I took that and added a bit to choose the database I want based on the branch I’m on. You’ll need to change out the $db_name
and $branch
variables to match your own, then you’ll be good to go!
// get branchname function config_get_git_branch() { // This assumes you have your .git directory at the same level as wp-config.php. // If you don't, then change the path to wherever your .git director is $stringfromfile = file('.git/HEAD', FILE_USE_INCLUDE_PATH); $firstLine = $stringfromfile[0]; //get the string from the array $explodedstring = explode("/", $firstLine, 3); //seperate out by the "/" in the string $branch = $explodedstring[2]; //get the one that is always the branch name return trim($branch); } // choose which db you want to use function config_get_db_name() { $branch = config_get_git_branch(); // change these $db_name and and $branch strings to match // whatever ones you want. if($branch === 'child') { $db_name = 'child_db'; } else { $db_name = 'site_db'; } return $db_name; } // ** MySQL settings - You can get this info from your web host ** // /** The name of the database for WordPress */ define('DB_NAME', config_get_db_name());
Now you’ll never forgot to switch the DB out when you checkout to a new branch. Happy coding!