Files
pgbackweb/internal/database/migrations/20240720060503_add_backups_table.sql
2024-07-21 19:34:23 -06:00

40 lines
1.2 KiB
SQL

-- +goose Up
-- +goose StatementBegin
CREATE TABLE IF NOT EXISTS backups (
id UUID NOT NULL DEFAULT uuid_generate_v4() PRIMARY KEY,
database_id UUID NOT NULL REFERENCES databases(id),
destination_id UUID NOT NULL REFERENCES destinations(id),
name TEXT NOT NULL,
cron_expression TEXT NOT NULL UNIQUE,
time_zone TEXT NOT NULL,
is_active BOOLEAN NOT NULL DEFAULT FALSE,
dest_dir TEXT NOT NULL,
retention_days SMALLINT NOT NULL DEFAULT 0,
opt_data_only BOOLEAN NOT NULL DEFAULT FALSE,
opt_schema_only BOOLEAN NOT NULL DEFAULT FALSE,
opt_clean BOOLEAN NOT NULL DEFAULT FALSE,
opt_if_exists BOOLEAN NOT NULL DEFAULT FALSE,
opt_create BOOLEAN NOT NULL DEFAULT FALSE,
opt_no_comments BOOLEAN NOT NULL DEFAULT FALSE,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updated_at TIMESTAMPTZ
);
CREATE TRIGGER backups_change_updated_at
BEFORE UPDATE ON backups FOR EACH ROW EXECUTE FUNCTION change_updated_at();
CREATE INDEX IF NOT EXISTS
idx_backups_database_id ON backups(database_id);
CREATE INDEX IF NOT EXISTS
idx_backups_destination_id ON backups(destination_id);
-- +goose StatementEnd
-- +goose Down
-- +goose StatementBegin
DROP TABLE IF EXISTS backups;
-- +goose StatementEnd