- 投稿日:2020-01-01T20:57:31+09:00
django アプリケーション毎に データベースを分ける
settings.py
INSTALLED_APPS = [ ... 'app1.apps.App1Config', 'app2.apps.App2Config', ] DATABASES = { 'default': { .... }, 'db2': { .... }, } DATABASE_ROUTERS = ['config.db_router.DbRouter']modelに追加
※重要
ここのapp_labelをmodel_routerで識別する
class User(models.Model):
class Meta:
app_label = 'apiv2'
ファイル追加
config/db_router.py
class DbRouter: def db_for_read(self, model, **hints): if model._meta.app_label == 'apiv1': return 'default' if model._meta.app_label == 'apiv2': return 'db2' return None def db_for_write(self, model, **hints): if model._meta.app_label == 'apiv1': return 'default' if model._meta.app_label == 'apiv2': return 'db2' return None def allow_relation(self, obj1, obj2, **hints): return True def allow_migrate(self, db, app_label, model=None, **hints): if app_label == 'auth' or app_label == 'contenttypes' or app_label == 'sessions' or app_label == 'admin': return db == 'default' if app_label == 'apiv1': return db == 'default' if app_label == 'apiv2': return db == 'db2' return Nonemigrate
CORS_ORIGIN_ALLOW_ALL
CORS_ORIGIN_WHITELIST
が邪魔するので一旦コメントアウトdocker-compose run back ./manage.py makemigrations docker-compose run back ./manage.py migrate --database=db2
- 投稿日:2020-01-01T03:33:07+09:00
MySQL で The server quit without updating PID file というエラーが出た時
mysqlが起動しない
mysqlを起動しようとコマンドを打ったところ、エラーが発生した。
$ sudo mysql.server start Starting MySQL .. ERROR! The server quit without updating PID file (/usr/local/var/mysql/****.local.pid).原因
エラーログを確認。
$ sudo tail -f /usr/local/var/mysql/****.local.err | grep ERROR 2019-12-31T18:01:14.011891Z 0 [ERROR] [MY-010274] [Server] Could not open unix socket lock file /tmp/mysql.sock.lock.解決
lock fileを削除。
$ sudo rm -rf /tmp/mysql.sock.lockその後起動すると...
$ sudo mysql.server start Starting MySQL .. SUCCESS!起動できました!