Skip to content

Instantly share code, notes, and snippets.

@Konard
Created December 16, 2022 17:43
Show Gist options
  • Save Konard/5b49fdb88042fc7a042cc1648a0ad0ea to your computer and use it in GitHub Desktop.
Save Konard/5b49fdb88042fc7a042cc1648a0ad0ea to your computer and use it in GitHub Desktop.
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