sqlite3.OperationalError:无法打开数据库文件

在Django中设置服务器时出现此错误。它是sqlite3,这意味着它应该创建.db文件,但似乎没有这样做。我已经将SQLite规定为后端,并且将其放置在绝对的文件路径中,但是没有运气。

这是错误还是我做错了什么?(只是在想,在Ubuntu中指定的绝对文件路径是否有所不同?)

这是我的settings.py文件的开头:

# Django settings for OmniCloud project.

DEBUG = True

TEMPLATE_DEBUG = DEBUG

ADMINS = (

# ('Your Name', 'your_email@example.com'),

)

MANAGERS = ADMINS

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.

'NAME': '~/Harold-Server/OmniCloud.db', # Or path to database file if using sqlite3.

'USER': '', # Not used with sqlite3.

'PASSWORD': '', # Not used with sqlite3.

'HOST': '', # Set to empty string for localhost. Not used with sqlite3.

'PORT': '', # Set to empty string for default. Not used with sqlite3.

}

}

回答:

问题你正在使用SQLite3,你的DATABASE_NAME设置为数据库文件的完整路径,该数据库文件可由Apache写入,但仍会出现上述错误。

解决方案:确保Apache也可以写入数据库的父目录。SQLite需要能够写入此目录。

确保数据库文件的完整路径的每个文件夹都不以数字开头,例如。/ www / 4myweb / db(在Windows 2000上观察到)。

如果将DATABASE_NAME设置为“ / Users /你的名称/站点/ mydjangoproject / db / db”之类的内容,请确保首先创建了“ db”目录。

确保你的/ tmp目录是可写的(一个不太可能的原因,因为系统上的其他东西也将不起作用)。ls / tmp -ald应该产生drwxrwxrwt…。

确保settings.py中指定的数据库路径是完整路径。

另外,请确保该文件位于你期望的位置。

以上是 sqlite3.OperationalError:无法打开数据库文件 的全部内容, 来源链接: utcz.com/qa/429477.html

回到顶部