Skip to content

Instantly share code, notes, and snippets.

@mlusetti
Created October 22, 2018 07:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mlusetti/2896b90c2bf06725c373add26ec7cb0a to your computer and use it in GitHub Desktop.
Save mlusetti/2896b90c2bf06725c373add26ec7cb0a to your computer and use it in GitHub Desktop.
CREATE TABLE model_has_permissions
(
permission_id integer NOT NULL,
model_id integer NOT NULL,
model_type character varying(255) NOT NULL,
CONSTRAINT model_has_permissions_pkey PRIMARY KEY (permission_id, model_id, model_type),
CONSTRAINT model_has_permissions_permission_id_foreign FOREIGN KEY (permission_id)
REFERENCES public.permissions (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE CASCADE
)
CREATE TABLE model_has_roles
(
role_id integer NOT NULL,
model_id integer NOT NULL,
model_type character varying(255) NOT NULL,
CONSTRAINT model_has_roles_pkey PRIMARY KEY (role_id, model_id, model_type),
CONSTRAINT model_has_roles_role_id_foreign FOREIGN KEY (role_id)
REFERENCES public.roles (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE CASCADE
)
CREATE TABLE permissions
(
id integer NOT NULL DEFAULT nextval('permissions_id_seq'::regclass),
name character varying(255) NOT NULL,
guard_name character varying(255) NOT NULL,
created_at timestamp(0) with time zone,
updated_at timestamp(0) with time zone,
CONSTRAINT permissions_pkey PRIMARY KEY (id)
)
CREATE TABLE roles
(
id integer NOT NULL DEFAULT nextval('roles_id_seq'::regclass),
name character varying(255) NOT NULL,
guard_name character varying(255) NOT NULL,
created_at timestamp(0) with time zone,
updated_at timestamp(0) with time zone,
CONSTRAINT roles_pkey PRIMARY KEY (id)
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment