Skip to content

Instantly share code, notes, and snippets.

@timsuchanek
Last active March 22, 2019 17:47
Show Gist options
  • Save timsuchanek/73aff2c37e104c4f760f144fc77475be to your computer and use it in GitHub Desktop.
Save timsuchanek/73aff2c37e104c4f760f144fc77475be to your computer and use it in GitHub Desktop.

Dump

--
-- PostgreSQL database dump
--

-- Dumped from database version 11.1 (Debian 11.1-1.pgdg90+1)
-- Dumped by pg_dump version 11.0

SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SELECT pg_catalog.set_config('search_path', '', false);
SET check_function_bodies = false;
SET client_min_messages = warning;
SET row_security = off;

--
-- Name: management; Type: SCHEMA; Schema: -; Owner: prisma
--

CREATE SCHEMA management;


ALTER SCHEMA management OWNER TO prisma;

--
-- Name: role; Type: TYPE; Schema: public; Owner: prisma
--

CREATE TYPE public.role AS ENUM (
    'CUSTOMER',
    'ADMIN'
);


ALTER TYPE public.role OWNER TO prisma;

SET default_tablespace = '';

SET default_with_oids = false;

--
-- Name: CloudSecret; Type: TABLE; Schema: management; Owner: prisma
--

CREATE TABLE management."CloudSecret" (
    secret character varying(255) NOT NULL
);


ALTER TABLE management."CloudSecret" OWNER TO prisma;

--
-- Name: InternalMigration; Type: TABLE; Schema: management; Owner: prisma
--

CREATE TABLE management."InternalMigration" (
    id character varying(255) NOT NULL,
    "appliedAt" timestamp without time zone NOT NULL
);


ALTER TABLE management."InternalMigration" OWNER TO prisma;

--
-- Name: Migration; Type: TABLE; Schema: management; Owner: prisma
--

CREATE TABLE management."Migration" (
    "projectId" character varying(200) DEFAULT ''::character varying NOT NULL,
    revision integer DEFAULT 1 NOT NULL,
    schema text,
    functions text,
    status character varying(20) DEFAULT 'PENDING'::character varying NOT NULL,
    applied integer DEFAULT 0 NOT NULL,
    "rolledBack" integer DEFAULT 0 NOT NULL,
    steps text,
    errors text,
    "startedAt" timestamp without time zone,
    "finishedAt" timestamp without time zone,
    datamodel text,
    CONSTRAINT "Migration_status_check" CHECK (((status)::text = ANY ((ARRAY['PENDING'::character varying, 'IN_PROGRESS'::character varying, 'SUCCESS'::character varying, 'ROLLING_BACK'::character varying, 'ROLLBACK_SUCCESS'::character varying, 'ROLLBACK_FAILURE'::character varying])::text[])))
);


ALTER TABLE management."Migration" OWNER TO prisma;

--
-- Name: Project; Type: TABLE; Schema: management; Owner: prisma
--

CREATE TABLE management."Project" (
    id character varying(200) DEFAULT ''::character varying NOT NULL,
    secrets text,
    "allowQueries" boolean DEFAULT true NOT NULL,
    "allowMutations" boolean DEFAULT true NOT NULL,
    functions text
);


ALTER TABLE management."Project" OWNER TO prisma;

--
-- Name: TelemetryInfo; Type: TABLE; Schema: management; Owner: prisma
--

CREATE TABLE management."TelemetryInfo" (
    id character varying(255) NOT NULL,
    "lastPinged" timestamp without time zone
);


ALTER TABLE management."TelemetryInfo" OWNER TO prisma;

--
-- Name: category; Type: TABLE; Schema: public; Owner: prisma
--

CREATE TABLE public.category (
    id integer NOT NULL,
    name character varying NOT NULL
);


ALTER TABLE public.category OWNER TO prisma;

--
-- Name: category_id_seq; Type: SEQUENCE; Schema: public; Owner: prisma
--

CREATE SEQUENCE public.category_id_seq
    AS integer
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.category_id_seq OWNER TO prisma;

--
-- Name: category_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: prisma
--

ALTER SEQUENCE public.category_id_seq OWNED BY public.category.id;


--
-- Name: post; Type: TABLE; Schema: public; Owner: prisma
--

CREATE TABLE public.post (
    id integer NOT NULL,
    title character varying NOT NULL,
    published boolean DEFAULT false NOT NULL,
    "createdAt" timestamp without time zone NOT NULL,
    "updatedAt" timestamp without time zone NOT NULL,
    author integer NOT NULL
);


ALTER TABLE public.post OWNER TO prisma;

--
-- Name: post_id_seq; Type: SEQUENCE; Schema: public; Owner: prisma
--

CREATE SEQUENCE public.post_id_seq
    AS integer
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.post_id_seq OWNER TO prisma;

--
-- Name: post_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: prisma
--

ALTER SEQUENCE public.post_id_seq OWNED BY public.post.id;


--
-- Name: post_to_category; Type: TABLE; Schema: public; Owner: prisma
--

CREATE TABLE public.post_to_category (
    category integer NOT NULL,
    post integer NOT NULL
);


ALTER TABLE public.post_to_category OWNER TO prisma;

--
-- Name: profile; Type: TABLE; Schema: public; Owner: prisma
--

CREATE TABLE public.profile (
    id integer NOT NULL,
    bio text NOT NULL
);


ALTER TABLE public.profile OWNER TO prisma;

--
-- Name: profile_id_seq; Type: SEQUENCE; Schema: public; Owner: prisma
--

CREATE SEQUENCE public.profile_id_seq
    AS integer
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.profile_id_seq OWNER TO prisma;

--
-- Name: profile_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: prisma
--

ALTER SEQUENCE public.profile_id_seq OWNED BY public.profile.id;


--
-- Name: user; Type: TABLE; Schema: public; Owner: prisma
--

CREATE TABLE public."user" (
    id integer NOT NULL,
    email character varying NOT NULL,
    name character varying,
    role public.role DEFAULT 'CUSTOMER'::public.role NOT NULL,
    "createdAt" timestamp without time zone NOT NULL,
    profile integer
);


ALTER TABLE public."user" OWNER TO prisma;

--
-- Name: user_id_seq; Type: SEQUENCE; Schema: public; Owner: prisma
--

CREATE SEQUENCE public.user_id_seq
    AS integer
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.user_id_seq OWNER TO prisma;

--
-- Name: user_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: prisma
--

ALTER SEQUENCE public.user_id_seq OWNED BY public."user".id;


--
-- Name: category id; Type: DEFAULT; Schema: public; Owner: prisma
--

ALTER TABLE ONLY public.category ALTER COLUMN id SET DEFAULT nextval('public.category_id_seq'::regclass);


--
-- Name: post id; Type: DEFAULT; Schema: public; Owner: prisma
--

ALTER TABLE ONLY public.post ALTER COLUMN id SET DEFAULT nextval('public.post_id_seq'::regclass);


--
-- Name: profile id; Type: DEFAULT; Schema: public; Owner: prisma
--

ALTER TABLE ONLY public.profile ALTER COLUMN id SET DEFAULT nextval('public.profile_id_seq'::regclass);


--
-- Name: user id; Type: DEFAULT; Schema: public; Owner: prisma
--

ALTER TABLE ONLY public."user" ALTER COLUMN id SET DEFAULT nextval('public.user_id_seq'::regclass);


--
-- Name: CloudSecret CloudSecret_pkey; Type: CONSTRAINT; Schema: management; Owner: prisma
--

ALTER TABLE ONLY management."CloudSecret"
    ADD CONSTRAINT "CloudSecret_pkey" PRIMARY KEY (secret);


--
-- Name: InternalMigration InternalMigration_pkey; Type: CONSTRAINT; Schema: management; Owner: prisma
--

ALTER TABLE ONLY management."InternalMigration"
    ADD CONSTRAINT "InternalMigration_pkey" PRIMARY KEY (id);


--
-- Name: Migration Migration_pkey; Type: CONSTRAINT; Schema: management; Owner: prisma
--

ALTER TABLE ONLY management."Migration"
    ADD CONSTRAINT "Migration_pkey" PRIMARY KEY ("projectId", revision);


--
-- Name: Project Project_pkey; Type: CONSTRAINT; Schema: management; Owner: prisma
--

ALTER TABLE ONLY management."Project"
    ADD CONSTRAINT "Project_pkey" PRIMARY KEY (id);


--
-- Name: TelemetryInfo TelemetryInfo_pkey; Type: CONSTRAINT; Schema: management; Owner: prisma
--

ALTER TABLE ONLY management."TelemetryInfo"
    ADD CONSTRAINT "TelemetryInfo_pkey" PRIMARY KEY (id);


--
-- Name: category category_pkey; Type: CONSTRAINT; Schema: public; Owner: prisma
--

ALTER TABLE ONLY public.category
    ADD CONSTRAINT category_pkey PRIMARY KEY (id);


--
-- Name: post post_pkey; Type: CONSTRAINT; Schema: public; Owner: prisma
--

ALTER TABLE ONLY public.post
    ADD CONSTRAINT post_pkey PRIMARY KEY (id);


--
-- Name: profile profile_pkey; Type: CONSTRAINT; Schema: public; Owner: prisma
--

ALTER TABLE ONLY public.profile
    ADD CONSTRAINT profile_pkey PRIMARY KEY (id);


--
-- Name: user user_pkey; Type: CONSTRAINT; Schema: public; Owner: prisma
--

ALTER TABLE ONLY public."user"
    ADD CONSTRAINT user_pkey PRIMARY KEY (id);


--
-- Name: email_unique; Type: INDEX; Schema: public; Owner: prisma
--

CREATE UNIQUE INDEX email_unique ON public."user" USING btree (email);


--
-- Name: Migration migrations_projectid_foreign; Type: FK CONSTRAINT; Schema: management; Owner: prisma
--

ALTER TABLE ONLY management."Migration"
    ADD CONSTRAINT migrations_projectid_foreign FOREIGN KEY ("projectId") REFERENCES management."Project"(id) ON UPDATE CASCADE ON DELETE CASCADE;


--
-- PostgreSQL database dump complete
--

Introspected Datamodel v1.1

type Category @db(name: "category") {
  id: Int! @id(strategy: SEQUENCE) @sequence(name: "category_id_seq", initialValue: 1, allocationSize: 1)
  name: String!
}

type Post @db(name: "post") {
  id: Int! @id(strategy: SEQUENCE) @sequence(name: "post_id_seq", initialValue: 1, allocationSize: 1)
  author: Int!
  createdAt: DateTime! @createdAt
  published: Boolean! @default(value: false)
  title: String!
  updatedAt: DateTime! @updatedAt
}

type PostToCategory @db(name: "post_to_category") {
  category: Int!
  post: Int!
}

type Profile @db(name: "profile") {
  id: Int! @id(strategy: SEQUENCE) @sequence(name: "profile_id_seq", initialValue: 1, allocationSize: 1)
  bio: String!
}

enum Role {
  ADMIN
  CUSTOMER
}

type User @db(name: "user") {
  id: Int! @id(strategy: SEQUENCE) @sequence(name: "user_id_seq", initialValue: 1, allocationSize: 1)
  createdAt: DateTime! @createdAt
  email: String! @unique
  name: String
  profile: Int
  role: role!
}

enum role {
  ADMIN
  CUSTOMER
}

Desired Datamodel v1.1

type Category @db(name: "category") {
  id: Int! @id(strategy: SEQUENCE) @sequence(name: "category_id_seq", initialValue: 1, allocationSize: 1)
  name: String!
  posts: [Post!]! @relation(name: "PostToCategory")
}

type Post @db(name: "post") {
  id: Int! @id(strategy: SEQUENCE) @sequence(name: "post_id_seq", initialValue: 1, allocationSize: 1)
  author: Int!
  createdAt: DateTime! @createdAt
  published: Boolean! @default(value: false)
  title: String!
  updatedAt: DateTime! @updatedAt
  categories: [Category] @relation(link: TABLE, name: "PostToCategory")
}

type PostToCategory @db(name: "post_to_category") @linkTable {
  category: Category!
  post: Post!
}

type Profile @db(name: "profile") {
  id: Int! @id(strategy: SEQUENCE) @sequence(name: "profile_id_seq", initialValue: 1, allocationSize: 1)
  bio: String!
}

enum Role @db(name: "role") {
  ADMIN
  CUSTOMER
}

type User @db(name: "user") {
  id: Int! @id(strategy: SEQUENCE) @sequence(name: "user_id_seq", initialValue: 1, allocationSize: 1)
  createdAt: DateTime! @createdAt
  email: String! @unique
  name: String
  profile: Int
  role: Role!
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment