mirror of
https://github.com/zitadel/zitadel.git
synced 2026-07-25 18:28:00 +00:00
# Which Problems Are Solved If the `cache.objects`-table does not exist setup failes with the following error: `ERROR: relation "cache.objects" does not exist at character 44` # How the Problems Are Solved Changed statement to prevent immediately throw an error if the table is missing. # Additional Context - reported in https://discord.com/channels/927474939156643850/1473769282880934089 - backport to v4
34 lines
1.2 KiB
SQL
34 lines
1.2 KiB
SQL
DO
|
|
$do$
|
|
BEGIN
|
|
-- Convert objects to logged first (if unlogged)
|
|
IF EXISTS (SELECT 1 FROM pg_class WHERE oid = to_regclass('cache.objects') AND relpersistence = 'u') THEN
|
|
ALTER TABLE IF EXISTS cache.objects SET LOGGED;
|
|
END IF;
|
|
|
|
-- Convert string_keys to logged (if unlogged)
|
|
-- Drop the FK constraint first to avoid conflict with parent table conversion
|
|
IF EXISTS (SELECT 1 FROM pg_class WHERE oid = to_regclass('cache.string_keys') AND relpersistence = 'u') THEN
|
|
ALTER TABLE IF EXISTS cache.string_keys
|
|
DROP CONSTRAINT IF EXISTS fk_object;
|
|
ALTER TABLE IF EXISTS cache.string_keys
|
|
SET LOGGED;
|
|
ALTER TABLE IF EXISTS cache.string_keys
|
|
ADD CONSTRAINT fk_object
|
|
FOREIGN KEY(cache_name, object_id)
|
|
REFERENCES cache.objects(cache_name, id)
|
|
ON DELETE CASCADE;
|
|
END IF;
|
|
|
|
IF to_regclass('cache.objects') IS NOT NULL THEN
|
|
CREATE UNLOGGED TABLE IF NOT EXISTS cache.objects_default
|
|
PARTITION OF cache.objects DEFAULT;
|
|
END IF;
|
|
|
|
IF to_regclass('cache.string_keys') IS NOT NULL THEN
|
|
CREATE UNLOGGED TABLE IF NOT EXISTS cache.string_keys_default
|
|
PARTITION OF cache.string_keys DEFAULT;
|
|
END IF;
|
|
END
|
|
$do$
|