diff --git a/20230218073436_parts.down.sql b/20230218073436_parts.down.sql new file mode 100644 index 0000000..d1b29fd --- /dev/null +++ b/20230218073436_parts.down.sql @@ -0,0 +1,4 @@ +BEGIN; +ALTER TABLE words DROP COLUMN part_id; +DROP TABLE parts; +COMMIT; diff --git a/20230218073436_parts.up.sql b/20230218073436_parts.up.sql new file mode 100644 index 0000000..3edf961 --- /dev/null +++ b/20230218073436_parts.up.sql @@ -0,0 +1,18 @@ +BEGIN; + +CREATE TABLE parts ( +-- name type constraints + id BIGSERIAL PRIMARY KEY, + language_id BIGINT NOT NULL REFERENCES languages (id), + english_name VARCHAR NOT NULL, + +-- CONSTRAINT name CHECK (condition) + CONSTRAINT english_name_is_sane_text CHECK (is_sane_text(english_name)) +); + +CREATE UNIQUE INDEX parts_language_english_name + ON parts (language_id, english_name); + +ALTER TABLE words ADD COLUMN part_id BIGINT REFERENCES parts (id); + +COMMIT;