Files
database/migrations/archive/000.481.sql
T
Rikard BartholfandGitHub ddcbd0afb0 Archive old migrations (#426)
* Archive old migrations

* Fix invalid placement of migrations
2024-10-17 11:19:12 +02:00

56 lines
2.3 KiB
SQL

-- Drop what is created below for developer convenience
ALTER TABLE paint DROP COLUMN IF EXISTS paint_primer_id;
DROP TABLE IF EXISTS paint_primer_sizes;
DROP TABLE IF EXISTS paint_primer;
-- Add new order row type and subtype for wall paint to be able to create orders for paint
ALTER TYPE order_row_type ADD VALUE 'paint';
ALTER TYPE order_row_sub_type ADD VALUE 'wall_paint';
-- Create paint primer table structure
-- Create paint_primer table
CREATE TABLE paint_primer (
id INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
name TEXT NOT NULL,
created timestamp with time zone NOT NULL DEFAULT now(),
updated timestamp with time zone DEFAULT NULL
);
CREATE TRIGGER updated_timestamp BEFORE UPDATE ON paint_primer FOR EACH ROW EXECUTE PROCEDURE updated_timestamp();
INSERT INTO paint_primer (name)
VALUES
('A-base'),
('C-base');
-- Create paint_primer_sizes table
CREATE TABLE paint_primer_sizes (
id INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
paint_primer_id INTEGER NOT NULL REFERENCES paint_primer(id),
liters NUMERIC NOT NULL,
stock INTEGER NOT NULL DEFAULT 0,
created timestamp with time zone NOT NULL DEFAULT now(),
updated timestamp with time zone DEFAULT NULL
);
CREATE TRIGGER updated_timestamp BEFORE UPDATE ON paint_primer_sizes FOR EACH ROW EXECUTE PROCEDURE updated_timestamp();
-- Insert mock paint primer data (for now)
INSERT INTO paint_primer_sizes (paint_primer_id, liters, stock)
VALUES
((SELECT id FROM paint_primer WHERE name = 'A-base'), 5, 1),
((SELECT id FROM paint_primer WHERE name = 'A-base'), 3, 1),
((SELECT id FROM paint_primer WHERE name = 'A-base'), 1, 1),
((SELECT id FROM paint_primer WHERE name = 'C-base'), 5, 1),
((SELECT id FROM paint_primer WHERE name = 'C-base'), 3, 1),
((SELECT id FROM paint_primer WHERE name = 'C-base'), 1, 1);
-- Add paint_primer_id reference to paint
ALTER TABLE paint ADD COLUMN paint_primer_id INTEGER REFERENCES paint_primer(id);
-- Populate to allow for not null constraint
UPDATE paint SET paint_primer_id = (SELECT id FROM paint_primer WHERE name = 'A-base');
-- Add NOT NULL constraint to paint_primer_id for paint.
ALTER TABLE paint ALTER COLUMN paint_primer_id SET NOT NULL;