Skip to main content

SCHEMA_SQL

Constant SCHEMA_SQL 

Source
pub const SCHEMA_SQL: &str = r#"
SET client_min_messages = warning;
CREATE SCHEMA IF NOT EXISTS pgsync;
CREATE TABLE IF NOT EXISTS pgsync.job (
    job_id            text PRIMARY KEY,
    state             text NOT NULL,
    source_system_id  text NOT NULL,
    source_dbname     text NOT NULL,
    slot              text NOT NULL,
    publication       text NOT NULL,
    slot_owned        boolean NOT NULL DEFAULT false,
    consistent_point  pg_lsn,
    commit_lsn        pg_lsn NOT NULL DEFAULT '0/0',
    committed_lsn     pg_lsn NOT NULL DEFAULT '0/0',
    acked_lsn         pg_lsn NOT NULL DEFAULT '0/0',
    last_xid          bigint,
    last_commit_ts    bigint,
    txns_applied      bigint NOT NULL DEFAULT 0,
    last_error        text,
    created_at        timestamptz NOT NULL DEFAULT now(),
    updated_at        timestamptz NOT NULL DEFAULT now()
);
CREATE TABLE IF NOT EXISTS pgsync.job_runtime (
    job_id            text PRIMARY KEY REFERENCES pgsync.job (job_id) ON DELETE CASCADE,
    pid               integer NOT NULL,
    hostname          text NOT NULL,
    pgsync_version    text NOT NULL,
    started_at        timestamptz NOT NULL,
    updated_at        timestamptz NOT NULL,
    stopped_at        timestamptz,
    state             text NOT NULL,
    connection        text NOT NULL,
    source_version    text,
    received_lsn      pg_lsn NOT NULL DEFAULT '0/0',
    server_wal_end    pg_lsn NOT NULL DEFAULT '0/0',
    committed_lsn     pg_lsn NOT NULL DEFAULT '0/0',
    acked_lsn         pg_lsn NOT NULL DEFAULT '0/0',
    apply_lag_bytes   bigint NOT NULL DEFAULT 0,
    txns_applied      bigint NOT NULL DEFAULT 0,
    rows_applied      bigint NOT NULL DEFAULT 0,
    rows_copied       bigint NOT NULL DEFAULT 0,
    bytes_copied      bigint NOT NULL DEFAULT 0,
    bytes_received    bigint NOT NULL DEFAULT 0,
    txns_per_s        double precision NOT NULL DEFAULT 0,
    rows_per_s        double precision NOT NULL DEFAULT 0,
    reconnects        bigint NOT NULL DEFAULT 0,
    rss_bytes         bigint,
    last_apply_at     timestamptz
);
CREATE TABLE IF NOT EXISTS pgsync.table_sync (
    job_id       text NOT NULL REFERENCES pgsync.job (job_id) ON DELETE CASCADE,
    schema_name  text NOT NULL,
    table_name   text NOT NULL,
    state        text NOT NULL,
    rows_copied  bigint NOT NULL DEFAULT 0,
    bytes_copied bigint NOT NULL DEFAULT 0,
    copied_at    timestamptz,
    PRIMARY KEY (job_id, schema_name, table_name)
);
"#;