让django自动创建数据库" migrate"

时间:2016-11-25 09:58:10

标签: django

在开发环境中,有一种方法可以让django自动创建数据库(在postgreSQL服务器上)" migrate"像创建测试数据库时那样执行命令?

我的最终目标是为每个git分支建立一个数据库。

3 个答案:

答案 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分支拥有一个数据库听起来像是一场噩梦,我希望您提交迁移并根据需要进行适当合并

相关问题