59

Django でサーバーをセットアップするときにこのエラーが発生します。.db ファイルを作成する必要があることを意味する sqlite3 ですが、そうしていないようです。バックエンドとして 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.
}
}
4

7 に答える 7

85

Django初心者の間違い

問題 SQLite3 を使用しており、DATABASE_NAME がデータベース ファイルのフル パスに設定されており、データベース ファイルが Apache によって書き込み可能であるにもかかわらず、上記のエラーが発生します。

解決方法 Apache がデータベースの親ディレクトリにも書き込みできることを確認してください。SQLite はこのディレクトリに書き込める必要があります。

データベース ファイルのフル パスの各フォルダが数字で始まっていないことを確認してください。/www/4myweb/db (Windows 2000 で確認)。

DATABASE_NAME が「/Users/yourname/Sites/mydjangoproject/db/db」のように設定されている場合は、最初に「db」ディレクトリを作成したことを確認してください。

/tmp ディレクトリが誰でも書き込み可能であることを確認してください (システム上の他のものも機能しないため、これはまれな原因です)。ls /tmp -ald は drwxrwxrwt .... を生成するはずです。

settings.py で指定されたデータベースへのパスがフルパスであることを確認してください。

また、ファイルが期待する場所に存在することを確認してください。

于 2011-10-06T05:37:15.013 に答える
21

私はまったく同じ問題に直面しました。これが私の設定です。

'ENGINE': 'django.db.backends.sqlite3', 
'NAME': '/home/path/to/your/db/data.sqlite3'

sqlite3 の場合のその他の設定は同じ/デフォルトになります。
そして、data.sqlite3 を作成する必要があります。

于 2012-06-28T10:37:37.050 に答える
11

絶対パスが指定されていません。ショートカット , が使用されていますが~、このコンテキストでは機能しない可能性があります。/home/yourusername/Harold-Server/OmniCloud.db代わりに使用してください。

于 2011-10-06T08:11:35.870 に答える
6

私の場合、sqlite db ファイルはapachedb.sqlite3に保存されていました。DocumentRootそのため、次の権限を設定した後でも機能しませんでした。

sudo chown www-data:www-data /path/to/db-folder
sudo chown www-data:www-data /path/to/db-folder/sqlite-db.db

最後にdb.sqlite3、新しく作成したフォルダーに移動しdbfolderDocumentRoot上記のアクセス許可を与えたところ、機能しました。

于 2015-04-26T19:05:04.483 に答える
1

このタイプを使用してください。Python 2.7およびdjango 1.5を搭載したWindows 7

'ENGINE': 'django.db.backends.sqlite3',
'NAME': 'C:\\tool\\mysite\\data.db',

その作品を願っています...

于 2013-05-30T01:30:08.453 に答える