logical replicate DB (stage 1) #2

Merged
yume merged 6 commits from db-logical-replicate into master 2024-11-06 15:32:55 -06:00
3 changed files with 57 additions and 0 deletions
Showing only changes of commit fe58cef568 - Show all commits

View file

@ -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

View file

@ -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

View file

@ -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(' '));
}
}