【问题标题】:Django loaddata command on cygwin returns an error when installing fixtures (SQLite3 database)安装夹具(SQLite3 数据库)时,cygwin 上的 Django loaddata 命令返回错误
【发布时间】: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"
    }
}]

【问题讨论】:

  • 你能检查文件的权限吗?它应该是可写的。
  • 它是可写的,因为它在只有一个数据实例的情况下工作。

标签: django sqlite cygwin loaddata dumpdata


【解决方案1】:

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

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

【讨论】:

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

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

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

【讨论】:

    猜你喜欢
    • 2015-01-16
    • 2022-01-20
    • 1970-01-01
    • 2013-10-24
    • 1970-01-01
    • 2019-08-21
    • 2018-08-16
    • 2010-11-30
    • 1970-01-01
    相关资源
    最近更新 更多