Синтаксическая ошибка Django SQL при использовании двух разных движков баз данных
Я пытаюсь использовать django с несколькими базами данных. Одна по умолчанию postgres-db, а другая mysql-db. Я следовал документации о том, как настроить обе базы данных: https://docs.djangoproject.com/en/4.0/topics/db/multi-db/
Мой settings.py выглядит следующим образом:
DATABASES = {
"default": {
"ENGINE": "django.db.backends.postgresql",
"NAME": "default",
"USER": "----------",
"PASSWORD": "-----------",
"HOST": "localhost",
"PORT": "5432",
},
"data": {
"ENGINE": "django.db.backends.mysql",
"NAME": "data",
"USER": "---------",
"PASSWORD": "---------",
"HOST": "localhost",
"PORT": "3306",
}
}
При запросах к базе данных по умолчанию все работает нормально. Но кажется, что django использует синтаксис postgres-db sql для запросов к mysql-db:
# Model "Test" lives in the mysql-db.
Test.objects.using('data').all()
# gives me the following exception
psycopg2.errors.SyntaxError: ERROR: SyntaxError at ».«
LINE 1: EXPLAIN SELECT `test`.`id`, `test`.`title`, ...
Он даже использует клиент postgres-db psycopg2 для генерации/выполнения.
Использование необработанного запроса работает нормально, это означает, что он правильно использует mysql-db для конкретного запроса.
Test.objects.using('data').raw('SELECT * FROM test')
# works
Как настроить Django на использование правильного синтаксиса SQL при использовании нескольких баз данных разных движков?
Спасибо!