Djangoのデータベースメモ

Connection

SQLを実行するにはdjango.db.connectionsを利用する
database_nameは設定のDATABASESのキーではなくDBのデーターベース名

from django.db import connections
cursor = connections[database_name].cursor()
cursor.execute('select * from users')

Migrations *

makemigrations
sqlmigrate
migrate
squashmigrations
DBからModelを生成する
inspectdb

python manage.py inspectdb --database foo > models.py


レプリケーション *


Router *

app_labalは自動的に設定されている
DATABASE_ROUTERS = [‘path.to.YourRouter’]
DATABASE_ROUTERSのマイクレーションの設定をmigrateで反映するにはpython manage.py migrate –database fooのように対象となるDATABASESのキーを指定する必要がある
指定されたキーのDBのみが書き込まれる
指定しなかった場合はdefaultが反映される。それ以外のキーは書き込まれない。


Djangoメモ