octava / branching
根据当前git分支自动更改数据库。
4.4.1
2021-12-03 13:31 UTC
Requires
- php: ^7.1.3
- ext-pdo: *
- ext-zlib: *
- doctrine/doctrine-bundle: ~2.0
- symfony/dependency-injection: ~4.4
- symfony/monolog-bundle: ^3.3
- symfony/process: ~4.4
- symfony/yaml: ~4.4
- twig/twig: ^3.3
README
Symfony BranchingBundle。根据当前git分支自动更改 mysql 数据库。
Bundle版本与支持的symfony版本相关联。
安装
通过composer下载bundle
composer require octava/branching
然后,在项目中的app/AppKernel.php文件中添加以下行以启用bundle
<?php // config/bundles.php return [ // ... Octava\Bundle\BranchingBundle\OctavaBranchingBundle::class => ['all' => true], // ... }
创建新的分支 git branch feature
或 git checkout -b feature
。
之后运行 'app/console' 命令,bundle将自动创建和复制新的数据库。
确保,您的mysql连接有创建新模式的权限。Bundle使用默认的symfony连接参数 'database_host' 等。
配置
"BranchingBundle"的默认配置
# 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': ~
开发配置
#config/packages/dev/octava_branching.yaml octava_branching: switch_db: enabled: true
Nginx示例
显然,您的托管必须支持类似于 *.test.project.com
的DNS名称。以下是不同分支的nginx配置示例
server {
#...
if ($branch = "") {
set $branch "master";
}
server_name ~^(www\.)?(?<branch>.+)\.test\.project\.com$;
root /www/test.my.project.com/project/$branch/web;
#...
Twig扩展
当前分支
- 获取当前分支,用于生成项目标题
#your twig template file
{{ octava_current_branch() }}
对于master分支返回 master (dev)
字符串。