12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
-
- CREATE OR REPLACE FUNCTION now_utc() RETURNS timestamp without time zone
- LANGUAGE sql
- AS $$
- SELECT now() at time zone 'utc'
- $$;
-
- CREATE OR REPLACE FUNCTION lu_on_row_update() RETURNS trigger
- LANGUAGE plpgsql
- AS $$
- BEGIN
- NEW.updated_at := now_utc();
- INSERT INTO lu_entities_history ("table", "data") VALUES(TG_TABLE_NAME, to_json(OLD));
- return NEW;
- END
- $$;
-
- CREATE OR REPLACE FUNCTION lu_on_row_update_no_history() RETURNS trigger
- LANGUAGE plpgsql
- AS $$
-
- BEGIN
- NEW.updated_at := now_utc();
- return NEW;
- END
-
- $$;
-
-
-
- CREATE TABLE articles (
- id character varying(255) NOT NULL,
- text text NOT NULL,
- picture_url text,
- picture_caption text,
- type character varying(255) NOT NULL,
- created_at timestamp without time zone DEFAULT now_utc() NOT NULL,
- updated_at timestamp without time zone
- );
-
- CREATE TABLE articles_fields (
- article_id character varying(255) NOT NULL,
- property character varying(255) NOT NULL,
- "value" text NOT NULL,
- type character varying(255) NOT NULL
- );
-
-
- ALTER TABLE articles
- ADD CONSTRAINT articles_pkey PRIMARY KEY (id);
-
- ALTER TABLE articles_fields
- ADD CONSTRAINT articles_fields_pkey PRIMARY KEY (article_id, property);
-
- ALTER TABLE articles_fields
- ADD CONSTRAINT articles_fields_article_id_fkey FOREIGN KEY (article_id) REFERENCES articles(id) ON UPDATE CASCADE ON DELETE CASCADE;
-
- CREATE TRIGGER articles_lu_on_row_update_no_history
- BEFORE UPDATE ON articles
- FOR EACH ROW
- EXECUTE PROCEDURE lu_on_row_update_no_history();
|