はじめに
【3日でできる】はじめての Django 入門 ( Python 3 でウェブアプリを作って AWS EC2 で公開!)レクチャー25で投稿を保存しようとすると
『no such table: main.auth_user__old』というエラーが出る。
結論
アップデートを待とう!笑
スタックオーバーフロー曰く、Djangoのバグらしい。
2019年1月1日リリース予定のもので解消されるとのこと。
とはいえ、少しでも先に進めたいから他の人が書いてくれている解消法を試すことにします。
DBの向き先をPosgreSQLに変更する
※既に自分の端末にPosgreSQLが入っている方向けです。
入っていない方は適宜ググって入れるか、2019年1月1日リリースを待ちましょう
Python + Django + psycopg2でposgreSQLに接続するを参考にさせていただきました。@t-iguchi様ありがとうございます。
(py36) xxxx$ pip install psycopg2
Collecting psycopg2
Downloading https://files.pythonhosted.org/packages/ff/db/942f8e40e93b5fe060c8d3a736d8fdd134fa5308dba8484dc06ae46e3fbd/psycopg2-2.7.6.1-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl (1.5MB)
100% |████████████████████████████████| 1.5MB 168kB/s
Installing collected packages: psycopg2
Successfully installed psycopg2-2.7.6.1
$ python -c "import psycopg2"
/Users/xxxx/anaconda3/envs/py36/lib/python3.7/site-packages/psycopg2/__init__.py:144: UserWarning: The psycopg2 wheel package will be renamed from release 2.8; in order to keep installing from binary please use "pip install psycopg2-binary" instead. For details see: <http://initd.org/psycopg/docs/install.html#binary-install-from-pypi>.
""")
$ pip install psycopg2-binary
Collecting psycopg2-binary
Downloading https://files.pythonhosted.org/packages/fe/df/933e81c7fa95a915a9d67bd5736963a99513568f82cfc937c76d0d6f3414/psycopg2_binary-2.7.6.1-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl (1.5MB)
100% |████████████████████████████████| 1.5MB 277kB/s
Installing collected packages: psycopg2-binary
Successfully installed psycopg2-binary-2.7.6.1
PosgreSQLサーバ起動
$ postgres -D /usr/local/var/postgres
別ウィンドウにてpsql操作
PosgreSQL用のDBを作る
$ psql -d postgres
postgres=# create database djangodb;
postgres=# \q
DBの接続先設定を変更する
settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'djangodb',
'USER': '人によりけり',
'PASSWORD': '人によりけり',
'HOST': '127.0.0.1',
'POST': '5432'
}
}
レクチャー25までしっかりとやっていればmodelの設定もできているはずなので以下の通りやれば問題なく行くはず
$ python manage.py migrate
$ python manage.py createsuperuser
レクチャー通りに設定
$ python manage.py runserver

いけた!