モデル変更

適当にアプリを作っていると
modelの変更が頻繁に出てきます。
駄目人間の証ですね><


でも、そんな駄目人間にも優しいDjangoです。
後からカラム追加したり、ユニークにしたかったりインデックス貼りたかったりして
models.pyを変更した後、絶望にくれてませんか?
更にその後、

>python manage.py reset appName

とか打っちゃってadminにすらログインできなくなって
泣きそうになっていませんか?


俺は両方経験しました。
おっぱいマニア*1を目指す人間として軸がぶれている気がします><


さて、そんな時ですが、実は便利なコマンドがあります。

>python manage.py sqlreset appName | mysql -D dbName -u user -p  

もちろん大事なデータが入っているときにはやってはいけませんが
作成途中の時はこんな感じでガンガン変えちゃってます。


簡単に説明すると

>python manage.py sqlreset appName  

で、アプリのDROP TABLE文を作成してくれて
さらにCREATE TABLEしてくれるのです。


で、上の例ではそれをパイプというのを使ってmysqlコマンドに渡しているのですね♪


俺はこんなやり方をしているのですが
もしかしたらもっと良いやり方があるかもしれません><

*1:Python使いのこと