sqlite3は非常に手軽に扱えてGoodなんだけど、
外部キー制約をadd constraint で追加できなかったり
コマンド上でカラムを一気に複数作れなかったり、
drop columnもこんな感じで結構面倒。
軽さ故に痒いところに手が届かない感じでハマりまくった。
基本機能としてrailsのマイグレーションみたいなのをサポートしていないdjangoは
Southとかのツールを利用しないとなるとテーブルを直接触らないといけないので
sqlite3ではちょっと学習効率も開発効率も悪いなーと思ったので
postgreSQLに乗り換えてみた。
pythonのpostgreSQLドライバとしてはpsycopg2が有名なんだけど
windows だとpip install psycopg2 ってやると
vcvarsall.batが無いとか言われて、
この為だけにVC++2010をインストールしたけど
それでもうまく動かず…。
psycopg2のWebサイトに行ったらwindows用のインストーラがあるとかいう
何という灯台下暗し!
しかるべきバージョンのインストーラをダウンロードし、exeクリックで余裕でインストール!
あとはdjangoのsettings.pyを
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'django_mytaskapp', # Or path to database file if using sqlite3.
# The following settings are not used with sqlite3:
'USER': 'postgres',
'PASSWORD': 'xxxxx',
'HOST': 'localhost', # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.
'PORT': '5432', # Set to empty string for default.
}
}
ってやって “python manage.py syncdb”でOK。
ちなみにNAMEに指定したデータベースはsyncdbしても自動的に作成されないので
ちゃんとpsqlからテーブル作成してあげないとダメ。
sqlite3だとデータベースという概念を意識せずに色々できちゃってたのでプチハマりしました。