我一直致力于将两个遗留数据库中的57k +记录精炼和重构为一个与Django兼容的实体。现在,当我完成后,我把它作为夹具倾倒,我试图在生产环境中加载它。
我的问题是这个过程在一段时间后被“杀死”。我的流程是:
./manage.py syncdb --noinput
./manage.py loaddata core/fixtures/auth.json # just a default user
./manage.py migrate
结果:
Running migrations for django_extensions: # custom apps migrate just fine
- Migrating forwards to 0001_empty.
> django_extensions:0001_empty
- Loading initial data for django_extensions.
Installed 0 object(s) from 0 fixture(s)
Running migrations for myotherapp:
- Migrating forwards to 0001_initial.
> myotherapp:0001_initial
- Loading initial data for myotherapp.
Installed 4 object(s) from 1 fixture(s) # my other app with a fixture migrates ok
Running migrations for myapp:
- Migrating forwards to 0001_initial.
> myapp:0001_initial
- Loading initial data for myapp.
Killed
我必须注意,我的开发机器上的过程没有问题。 另一个注意事项是我的开发机器运行的是postgres 9.2,在生产中有9.1 - 这可能是一个很大的问题吗?
如何调试此方法?我甚至不知道模糊的“被杀”被打印出了什么问题。南存储任何日志?任何帮助表示赞赏。
编辑: 正如Paulo Scardine指出的那样,问题在于JSON文件很重。首先,我尝试了XML转储,它进一步发展但最终也被淘汰了。一种方法是SQL转储。对于Postgres来说,对我有用的是:
pg_dump dbname | gzip > filename.gz # dump data on dev machine
createdb dbname # create empty db in production
gunzip -c filename.gz | psql dbname # restore the dump in production
答案 0 :(得分:5)
无法找到有关加载灯具的具体错误。这个是倾销,但我猜根本原因是相关的:
您的问题有几个重复:
当我遇到这个错误时,我被告知要使用XML fixtures,因为XML解析器在内存占用方面的表现更好。
我的建议是不要在这个问题上失去多少睡眠,如果可以,请使用普通的SQL转储。