DjangoにはDB接続周りの処理をラッピングしてくれるdbshell
というコマンドがあります。
https://docs.djangoproject.com/en/5.0/ref/django-admin/#dbshell
使い方
python manage.py dbshell
とするとDBへ接続して対話シェルを開いた状態へ。
python manage.py dbshell 'select * from django_migrations'
のようにすると、SQLを実行して接続してくれます。
上記はSQLite3での例なので引数は不要でしたが、MySQLやPostgreSQLでは以下ページに記載があるように --
引数を付与することで -e
や-c
などのオプションを付与することができます。
https://docs.djangoproject.com/en/5.0/ref/django-admin/#cmdoption-dbshell-0
メリット
MySQL, PostgreSQL, SQLite3といったDBを意識せず、このコマンドでDB接続周りの処理を実施することができます。
自分はこのコマンドに気が付かず、例えばSQLite3なら
sqlite3 mysite/db.sqlite3
select * from django_migrations;
のようにコマンドを入力していました。そしてSQLite3以外のDBを利用するときには、それ以外の接続方法を調べて実行していたので、非常に楽になりました(先輩に教えてもらいました)。
dbshellを利用することで、DB接続も簡単に、かつ他のDBを利用する機会でも流用できるのでオススメです。