You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
boundary/internal/db/schema/migrations/postgres/1/02_domains.up.sql

59 lines
2.2 KiB

begin;
-- wt_email defines a type for email which must be less than 320 chars and only
-- contain lower case values. The type is defined to allow nulls and not be
-- unique, which can be overriden as needed when used in tables.
create domain wt_email as text
constraint wt_email_too_short
check (length(trim(value)) > 0)
constraint wt_email_too_long
check (length(trim(value)) < 320);
comment on domain wt_email is
'standard column for email addresses';
-- wt_full_name defines a type for a person's full name which must be less than
-- 512 chars. The type is defined to allow nulls and not be unique, which can
-- be overriden as needed when used in tables.
create domain wt_full_name text
constraint wt_full_name_too_short
check (length(trim(value)) > 0)
constraint wt_full_name_too_long
check(length(trim(value)) <= 512); -- gotta pick some upper limit.
comment on domain wt_full_name is
'standard column for the full name of a person';
-- wt_url defines a type for URLs which must be longer that 3 chars and
-- less than 4k chars. It's defined to allow nulls, which can be overridden as
-- needed when used in tables.
create domain wt_url as text
constraint wt_url_too_short
check (length(trim(value)) > 3)
constraint wt_url_too_long
check (length(trim(value)) < 4000)
constraint wt_url_invalid_protocol
check (value ~ 'https?:\/\/*');
comment on domain wt_url is
'standard column for URLs';
-- wt_name defines a type for resource names that must be less than 128 chars.
-- It's defined to allow nulls.
create domain wt_name as text
constraint wt_name_too_short
check (length(trim(value)) > 0)
constraint wt_name_too_long
check (length(trim(value)) < 128);
comment on domain wt_name is
'standard column for resource names';
-- wt_description defines a type for resource descriptions that must be less
-- than 1024 chars. It's defined to allow nulls.
create domain wt_description as text
constraint wt_description_too_short
check (length(trim(value)) > 0)
constraint wt_description_too_long
check (length(trim(value)) < 1024);
comment on domain wt_description is
'standard column for resource descriptions';
commit;