Django + SQLite如何在"数据库被锁定时增加SQLite超时"错误发生

时间:2017-06-15 07:30:09

标签: python django sqlite

我收到了:django.db.utils.OperationalError: database table is locked错误(一个哦,那个问题有很多副本)所有答案都参考了这个页面:

https://docs.djangoproject.com/en/dev/ref/databases/#database-is-locked-errorsoption

虽然我明白发生了什么,但我显然不太了解Python和Django以理解指令。该指令是增加超时,如:

'OPTIONS': {
    # ...
    'timeout': 20,
    # ...
}

但对于那些非常小的大脑来说,要确切了解该代码的确切位置并不容易。有人可以给我一些更多的背景吗?在我的Django项目中,我指定了这些选项吗?它可以成为一般的Django设置吗?超时听起来有点过于笼统的名字......

1 个答案:

答案 0 :(得分:3)

所以,是的,它会进入设置文件,但不仅仅是直接在设置文件中,而是在DATABASES下(当然)。

我的DATABASES部分现在看起来有点像这样:

   DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        'OPTIONS': {
            'timeout': 20,  # in seconds
            # see also
            # https://docs.python.org/3.7/library/sqlite3.html#sqlite3.connect
        }
    }

}

这似乎已经成功了。也许这对其他人来说都是显而易见的,也许不是。对于小脑袋而言,这并不总是那么容易。