前回と同様にVagrant環境で実験。PostgreSQLは既に入っていて、Djangoのテストページまで表示できているのが前提。
まずは settings.py 。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'myproject',
'USER':'vagrant',
'PASSWORD':'************',
'HOST':'',
}
}
で、
python manage.py sql [APPNAME]
すると案の定一筋縄にはいかなかった。以下のエラーになる。
django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: No module named psycopg2
pycopg2 というモジュールが無いとのこと。そこで以下を試す。
pip install psycopg2
が、どうも失敗しているっぽい。実行中の、ごちゃごちゃとメッセージが出てくる中に以下のような行も含まれていた。
Error: pg_config executable not found.
pip freeze
で確認するとやはり失敗している模様。上のエラーでググる。
以下を実行。
sudo yum install python-psycopg2
Complete!
こっちは成功。そこでもう一度。
pip install psycopg2
ところがエラーメッセージは全く変わらず。 pg_config とはいかに?再度ググる。
これ?
http://stackoverflow.com/questions/11618898/pg-config-executable-not-found
試してみる。
sudo yum install postgresql-devel
Complete!
三度目の正直。
pip install psycopg2
Successfully installed psycopg2
Cleaning up...
できた!続いて以下にも再チャレンジ。
python manage.py sql [APPNAME]
django.db.utils.OperationalError: FATAL: database "myproject" does not exist
これは前にも見た。あとは PostgreSQL でデータベースを作れば問題なく動く。
こうしてやってみると MySQL のときと流れはほとんど一緒みたいだ。