安装夹具(SQLite3 数据库)时,cygwin 上的 Django loaddata 命令返回错误

Posted

技术标签:

【中文标题】安装夹具(SQLite3 数据库)时,cygwin 上的 Django loaddata 命令返回错误【英文标题】:Django loaddata command on cygwin returns an error when installing fixtures (SQLite3 database) 【发布时间】:2013-05-12 22:25:32 【问题描述】:

我已将 cygwin 上的 cygwin 和 python 更新到 2.7,现在我无法使用 Django 中的 loaddata 管理命令将任何 json 文件加载到数据库中。 (使用 SQLite3 作为数据库后端)

它适用于只有一个数据实例的夹具。如果有两个或更多,它会像这样在第二个失败:

DatabaseError: Problem installing fixture 'myapp/fixtures/initial_data.json': Could not load myapp.MyModel(pk=2): unable
to open database file

还有其他人有这个问题吗?

一些额外的信息: 我已经在第二台计算机上全新安装 cygwin 上尝试过这个,并且我已经在我的几个 django 项目上尝试过。到处都是同样的错误。

我很确定任何人都可以通过在最新版本的 cygwin 上尝试 loaddata 命令来重现此错误。

编辑

它适用于这个 json 文件:

[

    "pk": 1, 
    "model": "myapp.mymodel", 
    "fields": 
        "title": "Some title"
    
]

但是这个失败了:

[

    "pk": 1, 
    "model": "myapp.mymodel", 
    "fields": 
        "title": "Some title"
    
,

    "pk": 2, 
    "model": "myapp.mymodel", 
    "fields": 
        "title": "Some other title"
    
]

【问题讨论】:

你能检查文件的权限吗?它应该是可写的。 它是可写的,因为它在只有一个数据实例的情况下工作。 【参考方案1】:

在使用 cygwin 安装程序进行大量测试后,我找到了问题的解决方案:

我卸载了 libsqlite3 和 sqlite3 3.7.16 并安装了 sqlite3 和 libsqlite3 3.7.13 版本。现在可以了!

【讨论】:

这很有帮助,谢谢!你应该接受你的答案是正确的。【参考方案2】:

我遇到了同样的问题,并通过从 3.7.16 版升级到 3.8.2 版解决了这个问题。

换句话说:降级不是唯一的解决方案,升级也可以!问题似乎是 3.7.16 版本。

【讨论】:

以上是关于安装夹具(SQLite3 数据库)时,cygwin 上的 Django loaddata 命令返回错误的主要内容,如果未能解决你的问题,请参考以下文章

RobotStudio Smart组件创建动态夹具

为啥我的夹具没有安装在 django 项目上?

安装夹具时 Django 1.10 引发错误:没有这样的列:REFERRED.id

带有自定义用户模型加载夹具错误的 Django 项目

安装 Msysgit 时出错 - Cygwin 似乎在您的系统路径中

安装 sqlite3 时 node-pre-gyp 出错