Я пытаюсь создать мультитенантное приложение node.js (также с поддоменами), где каждый пользователь имеет свою собственную базу данных под одним хостом (скажем, экземпляр rds).
Так что это будетмне проще передать базу данных этому конкретному пользователю для доступа к этой конкретной базе данных.
Поэтому моя проблема здесь заключается в том, что когда пользователь запрашивает API, возможно ли динамическое изменение имени базы данных на основе запроса.
Одна вещь, которая возникла у меня в голове, - это создать соединение с пулом с учетными данными, которые имеют доступ ко всей базе данных, и добавить имя базы данных в запрос, таким образом, я могу достичь того, чего хочу, но только изЛюбопытно, что можно добавить имя базы данных после создания пула соединений, не добавляя его в запрос.
Мое решение:
select * from 'dbname'.users
Что я ищу:
const pool = mysql.createPool({
host: process.env.DB_HOST,
user: process.env.DB_USERNAME,
password: process.env.DB_PASSWORD,
// database: process.env.DB_NAME, leaving out since db name should be dynamic
connectionLimit: 5,
supportBigNumbers: true,
});
И в промежуточном программном обеспечении, когда мне нужен доступ к БД, я должен иметь возможность установить имя БД на основе запроса.
Причина этого в том, что я создал приложение и написал запросы без имени базы данных, теперь я должен добавить логику к каждому запросу в моем приложении.