mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-12-14 17:02:49 +03:00
d09b00040f
GitOrigin-RevId: dcd69fb217a4e976523f1bc8e7b2693111091002
75 lines
3.5 KiB
SQL
75 lines
3.5 KiB
SQL
-- This migration enables metadata separation
|
|
-- Drops all tables which stores hasura metadata
|
|
DROP VIEW hdb_catalog.hdb_role;
|
|
DROP TABLE hdb_catalog.hdb_custom_types;
|
|
DROP TABLE hdb_catalog.hdb_action_permission;
|
|
DROP TABLE hdb_catalog.hdb_action;
|
|
DROP VIEW hdb_catalog.hdb_computed_field_function;
|
|
DROP TABLE hdb_catalog.hdb_computed_field;
|
|
DROP TABLE hdb_catalog.hdb_allowlist;
|
|
DROP TABLE hdb_catalog.hdb_query_collection;
|
|
DROP VIEW hdb_catalog.hdb_function_info_agg;
|
|
DROP VIEW hdb_catalog.hdb_table_info_agg;
|
|
DROP TRIGGER hdb_schema_update_event_notifier ON hdb_catalog.hdb_schema_update_event;
|
|
DROP FUNCTION hdb_catalog.hdb_schema_update_event_notifier();
|
|
DROP TABLE hdb_catalog.hdb_schema_update_event; -- https://github.com/hasura/graphql-engine/pull/6173
|
|
DROP TABLE hdb_catalog.remote_schemas;
|
|
DROP VIEW hdb_catalog.hdb_function_agg;
|
|
DROP TABLE hdb_catalog.hdb_function;
|
|
DROP TABLE hdb_catalog.event_triggers;
|
|
DROP FUNCTION hdb_catalog.inject_table_defaults(text, text, text, text);
|
|
DROP VIEW hdb_catalog.hdb_primary_key;
|
|
DROP VIEW hdb_catalog.hdb_unique_constraint;
|
|
DROP VIEW hdb_catalog.hdb_check_constraint;
|
|
DROP VIEW hdb_catalog.hdb_foreign_key_constraint;
|
|
DROP VIEW hdb_catalog.hdb_permission_agg;
|
|
DROP TABLE hdb_catalog.hdb_permission;
|
|
DROP TABLE hdb_catalog.hdb_remote_relationship;
|
|
DROP TABLE hdb_catalog.hdb_relationship;
|
|
DROP TRIGGER event_trigger_table_name_update_trigger ON hdb_catalog.hdb_table;
|
|
DROP FUNCTION hdb_catalog.event_trigger_table_name_update();
|
|
DROP TABLE hdb_catalog.hdb_table;
|
|
DROP FUNCTION hdb_catalog.check_violation(text);
|
|
|
|
-- Remove foreign key constraint to hdb_cron_triggers in hdb_cron_events
|
|
ALTER TABLE hdb_catalog.hdb_cron_events DROP CONSTRAINT hdb_cron_events_trigger_name_fkey;
|
|
|
|
-- Now drop hdb_cron_triggers
|
|
DROP VIEW hdb_catalog.hdb_cron_events_stats;
|
|
DROP TABLE hdb_catalog.hdb_cron_triggers;
|
|
|
|
-- Create table which stores metadata JSON blob
|
|
-- The "IF NOT EXISTS" is added due to the introduction of maintenance mode
|
|
-- in which migrations are not applied on startup but the 'hdb_catalog.hdb_table'
|
|
-- is expected to exist and contain the metadata of the graphql-engine. Now, when
|
|
-- the graphql-engine is run in normal mode (with maintenance mode disabled) this
|
|
-- migration file will be run and since this table already exists, we should add
|
|
-- the "IF NOT EXISTS" clause to avoid a migration error
|
|
CREATE TABLE IF NOT EXISTS hdb_catalog.hdb_metadata
|
|
(
|
|
id INTEGER PRIMARY KEY,
|
|
metadata JSON NOT NULL
|
|
);
|
|
|
|
-- DROP hdb_views schema (https://github.com/hasura/graphql-engine/pull/6135)
|
|
DROP SCHEMA IF EXISTS hdb_views CASCADE;
|
|
|
|
-- Note [Migration of schema related to table event triggers log]
|
|
|
|
-- Table event triggers log related schema is
|
|
-- - TABLE hdb_catalog.event_log
|
|
-- - TABLE hdb_catalog.event_invocation_logs
|
|
-- - PROCEDURE hdb_catalog.insert_event_log
|
|
|
|
-- We define this schema in any pg source to support table event triggers.
|
|
-- There's a possibility of using metadata storage database as a source
|
|
-- (more likely if server is started with only --database-url option).
|
|
-- In this case, dropping the schema in this up (42 to 43) migration and re-creating the
|
|
-- same while defining as a pg source causes loss of event trigger logs.
|
|
-- To avoid this we won't drop the schema in this migration. While defining
|
|
-- a pg source we will define this schema only if this doesn't exist. This also
|
|
-- raises a question, "What happens if old database is only used as metadata storage?".
|
|
-- Then, definitely, this schema will be of no use. But, this helps a lot in down
|
|
-- migration (opposite to this migration, 43 to 42) as we create this schema only if this
|
|
-- doesn't exist.
|