logical replicate DB (stage 1) #2
3 changed files with 57 additions and 0 deletions
|
@ -26,6 +26,19 @@ services:
|
||||||
test: "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"
|
test: "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"
|
||||||
interval: 5s
|
interval: 5s
|
||||||
retries: 20
|
retries: 20
|
||||||
|
command: ["-c", "wal_level=logical"]
|
||||||
|
|
||||||
|
# db-publish:
|
||||||
|
# restart: always
|
||||||
|
# image: alpine/socat
|
||||||
|
# ports:
|
||||||
|
# - "5433:5433"
|
||||||
|
# volumes:
|
||||||
|
# - ./replication:/data
|
||||||
|
# command: [
|
||||||
|
# "OPENSSL-LISTEN:5433,openssl-min-proto-version=TLS1.2,cert=/data/certs/server.pub.pem,key=/data/certs/server.key.pem,cafile=/data/certs/ca.pem,fork,reuseaddr",
|
||||||
|
# "TCP4:db:5432"
|
||||||
|
# ]
|
||||||
|
|
||||||
# meilisearch:
|
# meilisearch:
|
||||||
# restart: always
|
# restart: always
|
||||||
|
|
|
@ -64,6 +64,24 @@ services:
|
||||||
test: "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"
|
test: "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"
|
||||||
interval: 5s
|
interval: 5s
|
||||||
retries: 20
|
retries: 20
|
||||||
|
command: ["-c", "wal_level=logical"]
|
||||||
|
|
||||||
|
db-publish:
|
||||||
|
restart: always
|
||||||
|
image: alpine/socat
|
||||||
|
links:
|
||||||
|
- db
|
||||||
|
networks:
|
||||||
|
- internal_network
|
||||||
|
- external_network
|
||||||
|
ports:
|
||||||
|
- "5433:5433"
|
||||||
|
volumes:
|
||||||
|
- ./replication:/data
|
||||||
|
command: [
|
||||||
|
"OPENSSL-LISTEN:5433,openssl-min-proto-version=TLS1.2,cert=/data/certs/server.pub.pem,key=/data/certs/server.key.pem,cafile=/data/certs/ca.pem,fork,reuseaddr",
|
||||||
|
"TCP4:db:5432"
|
||||||
|
]
|
||||||
|
|
||||||
# mcaptcha:
|
# mcaptcha:
|
||||||
# restart: always
|
# restart: always
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
const { MigrationInterface, QueryRunner } = require("typeorm");
|
||||||
|
|
||||||
|
module.exports = class LogicalReplicatePublish1730447062213 {
|
||||||
|
|
||||||
|
async up(queryRunner) {
|
||||||
|
await queryRunner.query(
|
||||||
|
[
|
||||||
|
"CREATE PUBLICATION misskey_public",
|
||||||
|
"FOR TABLES IN SCHEMA public",
|
||||||
|
"WITH (publish = 'insert, update, delete')",
|
||||||
|
].join(' '));
|
||||||
|
|
||||||
|
await queryRunner.query(
|
||||||
|
[
|
||||||
|
"ALTER PUBLICATION misskey_public",
|
||||||
|
"DROP TABLE auth_session, password_reset_request, access_token"
|
||||||
|
].join(' '));
|
||||||
|
}
|
||||||
|
|
||||||
|
async down(queryRunner) {
|
||||||
|
await queryRunner.query(
|
||||||
|
[
|
||||||
|
"DROP PUBLICATION misskey_public"
|
||||||
|
].join(' '));
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue