Если у меня есть URI соединения, я обычно могу использовать его с Sequelize следующим образом:
const sequelize = new Sequelize('postgres://user:pass@example.com:5432/dbname');
Однако, если я хочу использовать репликацию чтения и записи (https://sequelize.org/master/manual/read-replication.html ), то не представляется возможным использовать URI соединения. Можно ли передать строки URI подключения для чтения и записи в параметре репликации, например:
const sequelize = new Sequelize(null, null, null, {
dialect: 'postgres',
replication: {
read: [
'postgres://user:pass@reader.example.com:5432/dbname',
'postgres://user:pass@anotherreader.example.com:5432/dbname'
],
write: 'postgres://user:pass@writer.example.com:5432/dbname'
}
})
РЕДАКТИРОВАТЬ:
Я уже нашел решение этой проблемы. и это использует библиотеку npm, такую как строка подключения , для анализа строки подключения, как показано ниже:
const write_uri = new ConnectionString(uri);
const sequelize = new Sequelize(null, null, null, {
dialect: 'postgres',
replication: {
read: [
'postgres://user:pass@reader.example.com:5432/dbname',
'postgres://user:pass@anotherreader.example.com:5432/dbname'
],
write: {
host: write_uri.hosts[0].name,
username: write_uri.user,
password: write_uri.password,
database: write_uri.path[0],
port: write_uri.hosts[0].port
}
}
});
Но это не то, что я ищу.