PR for #3 #17
4
resources/sql/migrations/0000-init.down.sql
Normal file
4
resources/sql/migrations/0000-init.down.sql
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
drop trigger generate_version_number_trigger on article;
|
||||||
|
drop table article;
|
||||||
|
drop function generate_version_number(regclass, uuid);
|
||||||
|
drop function set_version_number();
|
||||||
33
resources/sql/migrations/0000-init.up.sql
Normal file
33
resources/sql/migrations/0000-init.up.sql
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
create or replace function generate_version_number(tablename regclass, version_id uuid) returns int
|
||||||
|
language plpgsql as
|
||||||
|
$$
|
||||||
|
begin
|
||||||
|
return random(); -- TODO
|
||||||
|
end;
|
||||||
|
$$;
|
||||||
|
|
||||||
|
create or replace function set_version_number() returns trigger
|
||||||
|
language plpgsql as
|
||||||
|
$$
|
||||||
|
begin
|
||||||
|
new.version_number = generate_version_number(TG_TABLE_NAME::regclass, new.version_id);
|
||||||
|
end;
|
||||||
|
$$;
|
||||||
|
|
||||||
|
create table article
|
||||||
|
(
|
||||||
|
id uuid default uuid_generate_v4() not null,
|
||||||
|
version_id uuid default uuid_generate_v4() not null,
|
||||||
|
version_number int not null,
|
||||||
|
title text not null,
|
||||||
|
annonymous boolean default false not null,
|
||||||
|
content text not null,
|
||||||
|
description text,
|
||||||
|
tags varchar(32)[] default '{}' not null,
|
||||||
|
created_at timestamptz default now() not null
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TRIGGER generate_version_number_trigger
|
||||||
|
BEFORE INSERT
|
||||||
|
ON article
|
||||||
|
EXECUTE PROCEDURE set_version_number();
|
||||||
Reference in New Issue
Block a user