Created
December 16, 2022 17:43
-
-
Save Konard/5b49fdb88042fc7a042cc1648a0ad0ea to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
pm run gitpod-migrate | |
> @deep-foundation/[email protected] gitpod-migrate /workspace/dev | |
> export NEXT_PUBLIC_ENGINES=0; export NEXT_PUBLIC_HIDEPATH=1; export npm_config_yes=true; export JWT_SECRET="{\"type\":\"HS256\",\"key\":\"3EK6FD+o0+c7tzBNVfjpMkNDi2yARAAKzQlk8O2IKoxQu4nF7EdAh8s3TwpHwrdWT6R\"}" export MIGRATIONS_ID_TYPE_SQL=bigint; export MIGRATIONS_ID_TYPE_GQL=bigint; export MIGRATIONS_HASURA_PATH=$(echo $(gp url 8080) | awk -F[/:] '{print $4}'); export DEEPLINKS_HASURA_PATH=$(echo $(gp url 8080) | awk -F[/:] '{print $4}'); export MIGRATIONS_HASURA_SSL=1; export DEEPLINKS_HASURA_SSL=1; export MIGRATIONS_HASURA_SECRET=myadminsecretkey; export DEEPLINKS_HASURA_SECRET=myadminsecretkey; export NEXT_PUBLIC_DEEPLINKS_SERVER=https://$(echo $(gp url 3007) | awk -F[/:] '{print $4}'); export NEXT_PUBLIC_GQL_PATH=$(echo $(gp url 3006) | awk -F[/:] '{print $4}')/gql; export NEXT_PUBLIC_GQL_SSL=1 DEEPLINKS_HASURA_PATH=$(echo $(gp url 8080) | awk -F[/:] '{print $4}'); export DEEPLINKS_HASURA_SSL=1; export MIGRATIONS_DEEPLINKS_APP_URL=$(gp url 3007); export MIGRATIONS_DEEPLINKS_URL=$(gp url 3006); export DEEPLINKS_PUBLIC_URL=$(gp url 3006); export DOCKER_DEEPLINKS_URL=http://host.docker.internal:3006; cd packages/deeplinks && npm run migrate | |
> @deep-foundation/[email protected] migrate | |
> npx migrate up --compiler=ts:./compiler/index.js | |
up : 1616701513782-links.ts | |
up : 1616701513790-selectors-cashe.ts | |
up : 1621815803560-auto-indexes.ts | |
up : 1621815803572-materialized-path.ts | |
up : 1621815803592-type-mp.ts | |
up : 1622230000000-reserved-links.ts | |
up : 1622421760250-values.ts | |
up : 1622421760256-types.ts | |
admin 362 | |
up : 1622421760258-selectors.ts | |
up : 1622421760259-can.ts | |
up : 1622421760260-permissions.ts | |
up : 1623023831753-jwt.ts | |
up : 1637975150573-packager.ts | |
up : 1637975150590-promises.ts | |
up : 1642827746040-demo.ts | |
up : 1655979260869-sync-handlers.ts | |
up : 1657486935281-authorization.ts | |
up : 1657720948151-handlers.ts | |
up : 1658622099992-unvalue.ts | |
up : 1658909585601-hasura-storage.ts | |
error Bad Request { | |
internal: { | |
statement: '\n' + | |
' CREATE SCHEMA IF NOT EXISTS storage;\n' + | |
'\n' + | |
' CREATE EXTENSION IF NOT EXISTS citext WITH SCHEMA public;\n' + | |
'\n' + | |
' BEGIN;\n' + | |
'-- functions\n' + | |
' CREATE OR REPLACE FUNCTION storage.set_current_timestamp_updated_at ()\n' + | |
' RETURNS TRIGGER\n' + | |
' LANGUAGE plpgsql\n' + | |
' AS $a$\n' + | |
' DECLARE\n' + | |
' _new record;\n' + | |
' BEGIN\n' + | |
' _new := new;\n' + | |
' _new. "updated_at" = now();\n' + | |
' RETURN _new;\n' + | |
' END;\n' + | |
' $a$;\n' + | |
'\n' + | |
' CREATE OR REPLACE FUNCTION storage.protect_default_bucket_delete ()\n' + | |
' RETURNS TRIGGER\n' + | |
' LANGUAGE plpgsql\n' + | |
' AS $a$\n' + | |
' BEGIN\n' + | |
" IF OLD.ID = 'default' THEN\n" + | |
" RAISE EXCEPTION 'Can not delete default bucket';\n" + | |
' END IF;\n' + | |
' RETURN OLD;\n' + | |
' END;\n' + | |
' $a$;\n' + | |
'\n' + | |
' CREATE OR REPLACE FUNCTION storage.protect_default_bucket_update ()\n' + | |
' RETURNS TRIGGER\n' + | |
' LANGUAGE plpgsql\n' + | |
' AS $a$\n' + | |
' BEGIN\n' + | |
" IF OLD.ID = 'default' AND NEW.ID <> 'default' THEN\n" + | |
" RAISE EXCEPTION 'Can not rename default bucket';\n" + | |
' END IF;\n' + | |
' RETURN NEW;\n' + | |
' END;\n' + | |
' $a$;\n' + | |
'\n' + | |
' -- tables\n' + | |
' CREATE TABLE IF NOT EXISTS storage.buckets (\n' + | |
' id text NOT NULL PRIMARY KEY,\n' + | |
' created_at timestamp with time zone DEFAULT now() NOT NULL,\n' + | |
' updated_at timestamp with time zone DEFAULT now() NOT NULL,\n' + | |
' download_expiration int NOT NULL DEFAULT 30, -- 30 seconds\n' + | |
' min_upload_file_size int NOT NULL DEFAULT 1,\n' + | |
' max_upload_file_size int NOT NULL DEFAULT 50000000,\n' + | |
" cache_control text DEFAULT 'max-age=3600',\n" + | |
' presigned_urls_enabled boolean NOT NULL DEFAULT TRUE\n' + | |
' );\n' + | |
'\n' + | |
' CREATE TABLE IF NOT EXISTS storage.files (\n' + | |
' id uuid DEFAULT public.gen_random_uuid () NOT NULL PRIMARY KEY,\n' + | |
' link_id bigint unique,\n' + | |
' created_at timestamp with time zone DEFAULT now() NOT NULL,\n' + | |
' updated_at timestamp with time zone DEFAULT now() NOT NULL,\n' + | |
" bucket_id text NOT NULL DEFAULT 'default',\n" + | |
' name text,\n' + | |
' size int,\n' + | |
' mime_type text,\n' + | |
' etag text,\n' + | |
' is_uploaded boolean DEFAULT FALSE,\n' + | |
' uploaded_by_user_id uuid\n' + | |
' );\n' + | |
'\n' + | |
' -- constraints\n' + | |
' DO $$\n' + | |
' BEGIN\n' + | |
' IF NOT EXISTS(SELECT table_name\n' + | |
' FROM information_schema.table_constraints\n' + | |
" WHERE table_schema = 'storage'\n" + | |
" AND table_name = 'files'\n" + | |
" AND constraint_name = 'fk_bucket')\n" + | |
' THEN\n' + | |
' ALTER TABLE storage.files\n' + | |
' ADD CONSTRAINT fk_bucket FOREIGN KEY (bucket_id) REFERENCES storage.buckets (id) ON UPDATE CASCADE ON DELETE CASCADE;\n' + | |
' END IF;\n' + | |
' END $$;\n' + | |
'\n' + | |
' DO $$\n' + | |
' BEGIN\n' + | |
' IF NOT EXISTS(SELECT table_name\n' + | |
' FROM information_schema.table_constraints\n' + | |
" WHERE table_schema = 'storage'\n" + | |
" AND table_name = 'files'\n" + | |
" AND constraint_name = 'fk_link')\n" + | |
' THEN\n' + | |
' ALTER TABLE storage.files\n' + | |
' ADD CONSTRAINT fk_link FOREIGN KEY (link_id) REFERENCES public.links (id) ON UPDATE CASCADE ON DELETE CASCADE;\n' + | |
' END IF;\n' + | |
' END $$;\n' + | |
'\n' + | |
' -- triggers\n' + | |
' DROP TRIGGER IF EXISTS set_storage_buckets_updated_at ON storage.buckets;\n' + | |
' CREATE TRIGGER set_storage_buckets_updated_at\n' + | |
' BEFORE UPDATE ON storage.buckets\n' + | |
' FOR EACH ROW\n' + | |
' EXECUTE FUNCTION storage.set_current_timestamp_updated_at ();\n' + | |
'\n' + | |
' DROP TRIGGER IF EXISTS set_storage_files_updated_at ON storage.files;\n' + | |
' CREATE TRIGGER set_storage_files_updated_at\n' + | |
' BEFORE UPDATE ON storage.files\n' + | |
' FOR EACH ROW\n' + | |
' EXECUTE FUNCTION storage.set_current_timestamp_updated_at ();\n' + | |
'\n' + | |
' DROP TRIGGER IF EXISTS check_default_bucket_delete ON storage.buckets;\n' + | |
' CREATE TRIGGER check_default_bucket_delete\n' + | |
' BEFORE DELETE ON storage.buckets\n' + | |
' FOR EACH ROW\n' + | |
' EXECUTE PROCEDURE storage.protect_default_bucket_delete ();\n' + | |
'\n' + | |
' DROP TRIGGER IF EXISTS check_default_bucket_update ON storage.buckets;\n' + | |
' CREATE TRIGGER check_default_bucket_update\n' + | |
' BEFORE UPDATE ON storage.buckets\n' + | |
' FOR EACH ROW\n' + | |
' EXECUTE PROCEDURE storage.protect_default_bucket_update ();\n' + | |
'\n' + | |
' -- data\n' + | |
' DO $$\n' + | |
' BEGIN\n' + | |
' IF NOT EXISTS(SELECT id\n' + | |
' FROM storage.buckets\n' + | |
" WHERE id = 'default')\n" + | |
' THEN\n' + | |
' INSERT INTO storage.buckets (id)\n' + | |
" VALUES ('default');\n" + | |
' END IF;\n' + | |
' END $$;\n' + | |
'\n' + | |
' COMMIT;\n' + | |
'\n' + | |
' ALTER TABLE storage.buckets\n' + | |
' ADD CONSTRAINT download_expiration_valid_range\n' + | |
' CHECK (download_expiration >= 1 AND download_expiration <= 604800);\n' + | |
'\n' + | |
' ALTER TABLE storage.files DROP CONSTRAINT IF EXISTS fk_user;\n' + | |
' ', | |
prepared: false, | |
error: { | |
exec_status: 'FatalError', | |
hint: null, | |
message: 'constraint "download_expiration_valid_range" for relation "buckets" already exists', | |
status_code: '42710', | |
description: null | |
}, | |
arguments: [] | |
}, | |
path: '$.args', | |
error: 'query execution failed', | |
code: 'postgres-error' | |
} | |
up : 1661392616544-core-symbols.ts | |
up : 1664940577200-tsx.ts | |
up : 1664940577209-deepcase.ts |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment