2017-06-15 88 views
1

我收到:(一男孩哦是这个问题的还有许多副本)所有的答案请参阅本页面django.db.utils.OperationalError: database table is locked错误:的Django + SQLite的如何提高SQLite的超时时,“数据库被锁定”错误

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

尽管我明白发生了什么,但显然我不清楚Python和Django是否足够了解指令。该指令是增加像超时:

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

,但它不是那么容易了,熊的-甚小的大脑,了解确切位置的代码去。有人能给我更多的背景吗?在我的Django项目中,我是否指定了这些选项?它不可能是一个普通的Django设置吗?超时听起来lika有点过于笼统...

+0

所有的设置都在你项目的settings.py文件中 –

回答

1

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

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

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.sqlite3', 
     'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 
    }, 
    'OPTIONS': { 
     'timeout': 20, 
    } 
} 

这似乎已经完成了帽子戏法。也许这对其他人来说是显而易见的,或者不是。对于一个小脑袋来说,这并不总是那么容易。

+2

这对我来说看起来不太合适 - 我期望'OPTIONS'在'default'字典中,而不是在它之后。 – Alasdair

+1

@Alasdair是正确的。 https://docs.djangoproject.com/en/1.11/ref/settings/#std:setting-OPTIONS –

+0

以上代码中的Options的固定位置超时,正如@alasdair所述。 –