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"
|
||||
interval: 5s
|
||||
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:
|
||||
# restart: always
|
||||
|
|
|
@ -64,6 +64,24 @@ services:
|
|||
test: "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"
|
||||
interval: 5s
|
||||
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:
|
||||
# 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