feature #3: create table article
This commit is contained in:
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