在开发环境中,有一种方法让django像创建测试数据库时那样在“迁移”命令时自动创建数据库(在PostgreSQL服务器上)?让django在“migrate”上自动创建数据库
我的最终目标是为每个git分支提供一个数据库。
在开发环境中,有一种方法让django像创建测试数据库时那样在“迁移”命令时自动创建数据库(在PostgreSQL服务器上)?让django在“migrate”上自动创建数据库
我的最终目标是为每个git分支提供一个数据库。
不,因为django是一个网络框架,而不是一个网络服务器,你如何运行,取决于你。
另外,具有每混帐分支一个数据库听起来像是一场噩梦,我倒是希望你所提交的迁移和合并根据需要适当
,你可以在下面的脚本用伪代码的脚本
branch_name=<get branch name from git>
create_database with branch_name as db name
run django migrate
例如在Linux上使用bash也可能是
branch_name=git rev-parse --symbolic-full-name --abbrev-ref HEAD
createdb ${branch_name}
python manage.py migrate
The createdb
command is from PostgreSQL
然后你的Django settings.py也需要改变使用该数据库名,您可以在settings.py在Python阅读的Git分支名太:
>>> import subprocess
>>> DBNAME = subprocess.check_output('git rev-parse --symbolic-full-name --abbrev-ref HEAD', shell=True)
>>> DBNAME.replace('\n', '')
'develop'
然后你就可以在settings.py
使用该值(以上我是一个git分支develop
)
我已经使用环境变量检索数据库名称。我只是想问,如果django能够在本地做到这一点。如果没有,我会在手动之前做。 –
感谢您的答复。我们只在开发环境中需要这个。当处理特定分支上的数据库更改的功能时,由于django“检查”迁移状态,因此在更改为另一个分支时,我们被卡住了。有一个建议的过程? –
我想这不是我在django开发过程中遇到过的一个问题,我不知道这是否是由用户确定分支处于稳定状态之前切换或其他东西。我想逻辑步骤将是[创建分支时的git钩子](http://stackoverflow.com/q/14297606/1324033)如果这真的是你需要的 – Sayse