Djangoでsyncdbでデータベースを作成するときに自作のSQLを実行したい場合

Djangoを使っているときに、独自のSQLを流し込みたい場合があります。


そのようなときはpython manage.py syncdbのときに
次のようなディレクトリに配置したSQLを実行してくれます。


は作成中のアプリ名です。models.py等が配置されているとします。


その配下にsqlというディレクトリを作成して、modelname(models.pyで定義したテーブル名)を
ファイルにつけて、sqlという拡張子で保存しておきます。


<appname>/sql/<modelname>.sql


Djangoはsyncdbでモデルを作成するときにここも実行してくれます。


ポイントは実際のモデル名が大文字を含んでいたとしても、配置するファイル名、パスは小文字を用いることです。



これで初期データを大量に投入したいときや、ストレージエンジンを変更する場合等も対応できます。