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)
);
"#;