django - 将南迁移与 IBM Bluemix 结合使用

标签 django database-migration django-south cloud-foundry ibm-cloud

对于使用 Django 1.6 的新应用程序,我尝试创建一个 run.sh 来在 Bluemix 上运行初始命令。

我找到了答案here为 Django 1.7+ 支持的内置迁移提供 run.sh 文件

#!/bin/bash

 if [ -z "$VCAP_APP_PORT" ];
 then SERVER_PORT=80;
 else SERVER_PORT="$VCAP_APP_PORT";
 fi

 echo [$0] port is------------------- $SERVER_PORT

 python manage.py makemigrations
 python manage.py migrate

 echo "from django.contrib.auth.models import User; User.objects.create_superuser(username='username',password='password',email='you@example.com')" | python manage.py shell

 echo [$0] Starting Django Server...
 python manage.py runserver --noreload 0.0.0.0:$SERVER_PORT 

是否有一种幂等方法可以在南部运行等效命令(schemamigration --automigrate)?

最佳答案

我强烈建议不要在生产环境中创建迁移。您应该在本地开发环境中创建它们,并在提交它们以及代码库中的相应更改之前对其进行测试。

迁移是在/migrations/文件夹中的 python 文件中编写的。您应该将这些文件提交到存储库并将它们推送到 Bluemix(或以其他方式复制它们)。因此,manage.py schemamigration 应该只在开发中运行并提交/推送,然后,manage.py migrate 就可以在您部署项目的任何地方安全地运行。

关于django - 将南迁移与 IBM Bluemix 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31137570/

相关文章:

django - 在多个 django 模板中重用相同的 "block"html

.net - 处理数据库模式中的更改

oracle - 在Oracle中的impdp。为什么不创建用户?

Django 南迁移不适用于 null = True 和空白 = True

django - 使用django和south时如何初始化django数据库

python - 大型 django 表上的高效数据迁移

python - Django管理员使用Docker错误填充错误

django - 检查小部件级别的错误和其他值 - 可能使用自定义表单字段

django - 如何在aws elasticbean上安装redis和celery

heroku - 推送数据库到heroku : how to use heroku pg:push