manage.pyのsqlclearはDjangoのバージョン1.9で消えた

微妙にハマったので記事にします。

python manage.pyのsqlclearはDjangoのバージョン1.9で消えたというお話です。



manage.pyのsqlclearはDjangoのバージョン1.9で消えた

Djangoでmanage.pyの中にsqlclearというコマンドがありましたが、Djangoのバージョン1.9で消えました。
詳しくはこちらのDjangoドキュメントの1.9のリリースノートをご覧ください。
「sqlclear」という文字列で検索すればヒットします。
Django 1.9 release notes

sqlclearというコマンドが何だったかというと、アプリケーションを指定してアプリケーションが持つテーブルの中身をすべて消すSQLを発行するコマンドです。
例として、bookというアプリケーションがあり、models.pyに何かモデルを持っていた場合には「python manage.py sqlclear book | python manage.py dbshell」というコマンドを打つことでbookアプリケーションのmodels.pyに定義したモデルのテーブルすべてに対してDELETEのSQLを発行します。

では、Django1.9のバージョンアップによってmanage.pyのsqlclearが消えたことでmanage.pyのsqlclearと同じ操作をしたい場合はどうすれば良いかというと、単純にDBに接続して消したいテーブルのデータに対してDELETE文を発行すれば良いだけです。

「manage.py sqlclear appname」とするだけで対象のアプリケーションが持つDBのテーブルをすべて消してしまうので、バージョンアップによって消えてもおかしくなかったのかもしれません。

終わりに

今回はDjangoのmanage.pyのsqlclearはバージョン1.9で消えたということについてお話しさせていただきました。

逆にバージョン1.9より下のバージョンではsqlclearが使えるのでsqlclearが使いたい方はあえて低いバージョンを利用するという手もありかもしれません。
ただsqlclearのためだけにバージョンを落としてダウンロードする機会があることは考えにくいと思います。

最後までお読みいただきありがとうございます。
よろしければブログやTwitterでのシェアをお願いいたします。
コメントもお待ちしております。
誤植や勘違いなどございましたらコメント欄にて教えていただけると幸いです。






Django

Posted by ちこ