我使用PostgreSQL 9.1和Django 1.6.2。
CREATE DATABASE db WITH ENCODING = 'UTF8' TEMPLATE template0;
CREATE USER db_user WITH password 'password';
GRANT ALL privileges ON DATABASE db TO db_user;
然后我想加载夹具:
python manage.py loaddata cars
Killed
这是什么意思被杀?所有功能都与mysql完美配合Cars.yaml-这是一个非常大的文件(它有俄语单词,我需要用LC_COLLATE='ru_ru.UTF-8'创建数据库吗?)。
在mysql中我使用:
CREATE DATABASE `db` CHARACTER SET utf8 COLLATE utf8_general_ci;
一切都很好。请帮帮我,我是PostgreSQL的新手。
如何使用killed
解决该问题?
Killed
是由Unix shell显示的消息,而不是由python
程序本身显示的消息。
这告诉该程序以错误代码结束,该错误代码指示该程序已被SIGKILL
信号(称为kill -9
)杀死。
如果python
程序(或另一个并发程序)分配了大量内存,这可能是Linux OOM杀手的行为(请参阅OOM杀手杀死进程时的返回代码)。
查看内核日志以获取这方面的证据(/var/log/kernel.log
或类似内容)。如果这确实是内存过度使用的问题,那么在系统中添加交换空间可能会解决这个问题
或者,如果可能的话,改进脚本以使用更少的内存。
数据库的创建方式及其区域设置之间没有明显的联系。
在终端中使用pg_restore()
。
对于大文件,django加载数据会被操作系统杀死。其中一个解决方法是将数据库数据转储到归档中,然后直接加载到postgresql数据库中。所以,如果您的转储名为dump.gz,那么您可以在终端中使用以下命令将其加载到数据库:
gunzip dump.gz
pg_restore -d your_db -U user_name --no-owner dump