diff --git a/20230204224830_examples.down.sql b/20230204224830_examples.down.sql new file mode 100644 index 0000000..b20b145 --- /dev/null +++ b/20230204224830_examples.down.sql @@ -0,0 +1,4 @@ +BEGIN; +DROP TABLE example_texts; +DROP TABLE examples; +COMMIT; diff --git a/20230204224830_examples.up.sql b/20230204224830_examples.up.sql new file mode 100644 index 0000000..677670c --- /dev/null +++ b/20230204224830_examples.up.sql @@ -0,0 +1,20 @@ +BEGIN; + +CREATE TABLE examples ( + id BIGSERIAL PRIMARY KEY +); + +CREATE TABLE example_texts ( + id BIGSERIAL PRIMARY KEY, + example_id BIGINT NOT NULL REFERENCES examples (id), + language_id BIGINT NOT NULL REFERENCES languages (id), + index BIGINT NOT NULL, + value TEXT NOT NULL, + CONSTRAINT index_is_not_negative CHECK(index >= 0), + CONSTRAINT value_is_sane_text CHECK (is_sane_text(value)) +); + +CREATE UNIQUE INDEX example_texts_example_language_index + ON example_texts (example_id, language_id, index); + +COMMIT;