Django 如何自动让syncdb添加列(无需完全迁移)
当我对模型进行更改时(仅在开发过程中添加一列!),Django不会发出任何Django 如何自动让syncdb添加列(无需完全迁移),django,django-models,Django,Django Models,当我对模型进行更改时(仅在开发过程中添加一列!),Django不会发出任何ALTERTABLE语句来更新数据库。有没有办法实现或解决这个问题然后手动添加列 注意:我并不是真的在寻找一个完整的迁移解决方案,而是一种可以让我在添加列的过程中不断编码的解决方案。使用迁移工具,例如。如果您不想设置迁移,您可以使用如下技巧: 导出JANGY_项目='/Users/fish/Dropbox/ost2/ost2' export BPYTHON_INIT_SCRIPT='${JANGY_PROJECT}/ut
ALTERTABLE
语句来更新数据库。有没有办法实现或解决这个问题然后手动添加列
注意:我并不是真的在寻找一个完整的迁移解决方案,而是一种可以让我在添加列的过程中不断编码的解决方案。使用迁移工具,例如。如果您不想设置迁移,您可以使用如下技巧: 导出JANGY_项目='/Users/fish/Dropbox/ost2/ost2' export BPYTHON_INIT_SCRIPT='${JANGY_PROJECT}/utils/django_shell_imports.py' export PYTHONPATH=“${JANGY_PROJECT}:${PYTHONPATH}” 别名jangy=“python manage.py” alias bp=“cd$JANGY_项目和&bpython——交互式$bpython_初始化_脚本” 函数jangyfresh(){ tmpdate=$(日期“+%Y%m%d-%H%m%S”)&&\ cd$JANGY_项目&&\ echo“+将django项目数据库转储到fixture DUMP-${tmpdate}.json…”&&\ python manage.py dumpdata--format='json'--indent=4--verbosity=1>datadumps/DUMP-${tmpdate}.json&&\ echo“+备份sqlite二进制存储并使数据库脱机…”&&\ mv sqlite/data.db sqlite/data.db.bk&&\ echo“+从模型defs重建数据库结构…”&&\ python manage.py syncdb&&\ echo“+Apache…”&&\ sudo apachectl优雅&&\ echo“+启用对新sqlite文件的写访问…”&&\ chmod a+rw sqlite/data.db&&\ echo“+从fixture dump-${tmpdate}.json重新加载项目数据…”&&\ python manage.py loaddata datadumps/DUMP-${tmpdate}.json&&\ echo“+正在重建项目数据库结构…” } 。。。
bash
函数所做的是:
models.py
文件,删除sqlite文件并重新加载最后一个夹具
显然,我不会在生产安装上这样做,我也不建议这样做 查看evolution将
python manage.py sqlclear YOURAPP
与dumpdata
和loaddata
结合使用(fish2000的答案简化版,也使用特定的应用程序):
抱歉,这有点晚了,但我想我会把它张贴在这里,以防其他人有这个问题。如果您仍在开发中,并且所有数据都是虚拟数据(意味着您不想保留任何数据),那么您所要做的就是删除数据库并再次运行syncdb 可能重复的。。。在关于同一主题的许多其他问题中,我已经改写了一点。我想要的不是一个完整的迁移套件,而是在开发过程中快速添加列的东西。例如,
syncdb
发现缺少一列,并自动添加该列。@vbdoor:Django ORM中没有本机架构修改。在Django 1.7中,迁移似乎正在进行中:如果Django模型有一个列,而数据库没有,我会得到一个错误。这对其他人有用吗?在django的较新版本(例如1.5)中,要使用的命令是python manage.py sqlclear,而不是reset
DB=/path/to/db.sqlite3
APP=YOURAPPNAME
tmpdate=$(date "+%Y%m%d-%H%M%S")
echo "+ Dumping django project database to fixture DUMP-${tmpdate}.json ..." &&\
python manage.py dumpdata $APP --format='json' --indent=4 --verbosity=1 > datadumps/DUMP-${tmpdate}.json &&\
echo '+ Backing up sqlite binary store...' &&\
cp $DB $DB.bk &&\
echo '+ Rebuilding database structure from model defs...' &&\
python manage.py sqlclear $APP &&\
echo "+ Reloading project data from fixture dump DUMP-${tmpdate}.json ..." &&\
python manage.py loaddata datadumps/DUMP-${tmpdate}.json