diff --git a/migrations/000.198.sql b/migrations/000.198.sql new file mode 100644 index 0000000..1a763dc --- /dev/null +++ b/migrations/000.198.sql @@ -0,0 +1,74 @@ +-- P5-5305: add articles + +CREATE TABLE articles ( + id serial PRIMARY KEY NOT NULL, + created TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), + published TIMESTAMP WITH TIME ZONE, + deleted TIMESTAMP WITH TIME ZONE, + name TEXT +); + + +CREATE TABLE article_content ( + id serial NOT NULL, + article_id INTEGER NOT NULL, + market_id INTEGER NOT NULL, + title TEXT, + preamble TEXT, + body TEXT, + body_saved TIMESTAMP WITH TIME ZONE, + meta_title TEXT, + meta_description TEXT, + slug TEXT +); + + +ALTER TABLE article_content + ADD CONSTRAINT article_id + FOREIGN KEY (article_id) + REFERENCES articles(id) MATCH SIMPLE; + + +ALTER TABLE article_content + ADD CONSTRAINT market_id + FOREIGN KEY (market_id) + REFERENCES markets(id) MATCH SIMPLE; + + +CREATE TABLE article_categories ( + id serial NOT NULL, + name TEXT +); + + +INSERT INTO article_categories (name) VALUES + ('News'), + ('Pressroom'), + ('Interiors'), + ('Trends and inspiration'), + ('Furniture'), + ('Home improvement'), + ('Home decor'), + ('Lighting'), + ('Wall art'), + ('Style guides'); + + +CREATE TABLE article_article_categories ( + article_id INTEGER NOT NULL, + category_id INTEGER NOT NULL, + main INTEGER DEFAULT 0, + PRIMARY KEY (article_id, category_id) +); + + +ALTER TABLE article_article_categories + ADD CONSTRAINT article_id + FOREIGN KEY (article_id) + REFERENCES articles(id) MATCH SIMPLE; + + +ALTER TABLE article_article_categories + ADD CONSTRAINT category_id + FOREIGN KEY (category_id) + REFERENCES article_categories(id) MATCH SIMPLE;