1. ホーム
  2. django

[解決済み】Django: そのようなテーブルがない: django_session

2022-01-27 16:16:57

質問

このタイトルのトピックをいくつか見つけましたが、どの解決策も私にはうまくいきませんでした。 私のサーバでは、2つの Django サイトが動作しており、どちらも Nginx フロントエンド (静的ファイル用に使用) から供給される 2 つのポートで異なるバーチャルホストを使用する Apache を通して動作しています。 1つのサイトは MySql を使っていて、問題なく動作しています。 もう一方は Sqlite3 を使用しており、タイトルにあるようなエラーが発生します。

sqlite.exe をダウンロードして mysite.sqlite3 (このディレクトリの SQLite データベース) ファイルを見ると、確かに django_session テーブルがあり、その中に有効なデータがあります。 私はsqlite.exeをsystem32に、またPythonのパスにsite-packagesフォルダを置きました。

以下は、私のsettings.pyファイルの一部です。

MANAGERS = ADMINS

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'mysite.sqlite3',         # 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.
    }
}

python manage.py syncdb を使いましたが、エラーはなく、"No Fixtures" というコメントが表示されるだけでした。

どなたか、他に何か心当たりのある方はいらっしゃいますか? 私は、Sqliteを無視して、古い仲間のMySqlにすべてを移行することを検討しています。 私はとにかくそれを知っていることの利点のためにそれを使用していただけです。 私はそれを使わなければならない圧倒的な理由がないのです。 しかし、また、私の啓発のために、この問題が何であるか知っている人はいますか? あきらめるのは嫌なんです。

解決方法は?

とは異なる作業ディレクトリを使用している可能性があります。 manage.py コマンドを使用します。sqliteデータベースへの相対パスを指定しているため、作業ディレクトリに作成されます。絶対パスで試してみてください、例.

'NAME': '/tmp/mysite.sqlite3',

を実行しなければならないことを忘れないでください。 ./manage.py syncdb にコピーするか、既存のテーブルを含む現在のデータベースを /tmp .

それでエラーメッセージが解決されるのであれば、より良い場所を探すために /tmp :-)