Wallogit.com
2017 © Pedro Peláez
BranchingBundle for symdep. Auto change database depends on еру current git branch.
Symfony BranchingBundle. Auto change mysql database depends on current git branch., (*1)
Bundle version is connected with supported symfony version., (*3)
Download bundle by composer, (*4)
composer require octava/branching
Then, enable the bundle by adding the following line in the app/AppKernel.php file of your project:, (*5)
<?php
// config/bundles.php
return [
// ...
Octava\Bundle\BranchingBundle\OctavaBranchingBundle::class => ['all' => true],
// ...
}
Create new branch git branch feature or git checkout -b feature., (*6)
After that run 'app/console' command, and bundle create and copy new database automatically., (*7)
Be sure, that your mysql connect has privileges to create new scheme. Bundle use default symfony connection params 'database_host' etc., (*8)
Default configuration for "BranchingBundle", (*9)
# config/packages/octava_branching.yaml
octava_branching:
switch_db:
enabled: true
connection_urls:
- '%env(resolve:DATABASE_URL)%'
- '%env(resolve:BACKEND_DATABASE_URL)%'
ignore_tables:
- error_log
- resend_log
alter_increment_map:
default:
'UserBundle:User':
test:
start: 50000000
step: 1000
dev:
start: 8000000
step: 1000
'BalanceBundle:BalanceOperation': ~
'partner': ~
Configuration for dev, (*10)
#config/packages/dev/octava_branching.yaml
octava_branching:
switch_db:
enabled: true
Obviously, you're hosting must support dns name like this *.test.project.com.
There is an example of nginx config for different branches:, (*11)
server {
#...
if ($branch = "") {
set $branch "master";
}
server_name ~^(www\.)?(?<branch>.+)\.test\.project\.com$;
root /www/test.my.project.com/project/$branch/web;
#...
#your twig template file
{{ octava_current_branch() }}
For master branch return master (dev) string., (*12)