summaryrefslogtreecommitdiff
path: root/packages/backend/src/postgres.ts
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2023-04-08 15:53:36 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2023-04-08 15:53:36 +0900
commit9114c8cb8e7d0bb0f686190d47c60591ac211f35 (patch)
tree153b2ca2f6f07a291704ea5a8b7a1e003655cce1 /packages/backend/src/postgres.ts
parent:art (diff)
downloadsharkey-9114c8cb8e7d0bb0f686190d47c60591ac211f35.tar.gz
sharkey-9114c8cb8e7d0bb0f686190d47c60591ac211f35.tar.bz2
sharkey-9114c8cb8e7d0bb0f686190d47c60591ac211f35.zip
feat(backend): support replication of postgresql
Resolve #10205
Diffstat (limited to 'packages/backend/src/postgres.ts')
-rw-r--r--packages/backend/src/postgres.ts16
1 files changed, 16 insertions, 0 deletions
diff --git a/packages/backend/src/postgres.ts b/packages/backend/src/postgres.ts
index efeca46b49..bb21ed827e 100644
--- a/packages/backend/src/postgres.ts
+++ b/packages/backend/src/postgres.ts
@@ -200,6 +200,22 @@ export function createPostgresDataSource(config: Config) {
statement_timeout: 1000 * 10,
...config.db.extra,
},
+ replication: config.dbReplications ? {
+ master: {
+ host: config.db.host,
+ port: config.db.port,
+ username: config.db.user,
+ password: config.db.pass,
+ database: config.db.db,
+ },
+ slaves: config.dbSlaves!.map(rep => ({
+ host: rep.host,
+ port: rep.port,
+ username: rep.user,
+ password: rep.pass,
+ database: rep.db,
+ })),
+ } : undefined,
synchronize: process.env.NODE_ENV === 'test',
dropSchema: process.env.NODE_ENV === 'test',
cache: !config.db.disableCache && process.env.NODE_ENV !== 'test' ? { // dbをcloseしても何故かredisのコネクションが内部的に残り続けるようで、テストの際に支障が出るため無効にする(キャッシュも含めてテストしたいため本当は有効にしたいが...)