在开发环境中,有一种方法可以让django自动创建数据库(在postgreSQL服务器上)" migrate"像创建测试数据库时那样执行命令?
我的最终目标是为每个git分支建立一个数据库。
答案 0 :(得分:1)
是的,Django 在“迁移”上创建了一个数据库。但前提是它使用 SQLite。 文档清楚地说明了这一点 (https://docs.djangoproject.com/en/3.1/intro/tutorial02/)
<块引用>对于 SQLite 以外的数据库
如果您正在使用除 SQLite 之外的数据库,请确保此时您已经创建了一个数据库。在数据库的交互式提示中使用 CREATE DATABASE database_name;
执行此操作。
...
如果您使用 SQLite,则无需事先创建任何内容 - 数据库文件将在需要时自动创建。
答案 1 :(得分:0)
您可以使用
下面的伪代码编写脚本脚本branch_name=<get branch name from git>
create_database with branch_name as db name
run django migrate
e.g。在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也需要更改为使用该DB名称,因为您也可以在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 branch develop
)
答案 2 :(得分:-2)
不,因为django是一个 Web框架,而不是一个Web服务器,你如何运行它取决于你。
此外,每个git分支拥有一个数据库听起来像是一场噩梦,我希望您提交迁移并根据需要进行适当合并