refactor: remove legacy modules from API and UI
This commit is contained in:
108
migrations/0016_remove_legacy_features/down.sql
Normal file
108
migrations/0016_remove_legacy_features/down.sql
Normal file
@@ -0,0 +1,108 @@
|
||||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS customers (
|
||||
id VARCHAR(16) PRIMARY KEY,
|
||||
name VARCHAR(255) NOT NULL,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS locations (
|
||||
id VARCHAR(16) PRIMARY KEY,
|
||||
name VARCHAR(255) NOT NULL,
|
||||
kind VARCHAR(64) NULL,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
UNIQUE KEY uniq_locations_name (name)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS lots (
|
||||
id VARCHAR(16) PRIMARY KEY,
|
||||
code VARCHAR(255) NOT NULL,
|
||||
description TEXT NULL,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
UNIQUE KEY uniq_lots_code (code)
|
||||
);
|
||||
|
||||
ALTER TABLE projects
|
||||
ADD COLUMN customer_id VARCHAR(16) NULL,
|
||||
ADD INDEX idx_projects_customer (customer_id),
|
||||
ADD UNIQUE KEY uniq_projects_customer_name (customer_id, name),
|
||||
ADD CONSTRAINT fk_projects_customer
|
||||
FOREIGN KEY (customer_id) REFERENCES customers(id)
|
||||
ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
ALTER TABLE machines
|
||||
ADD COLUMN customer_id VARCHAR(16) NULL,
|
||||
ADD COLUMN location_id VARCHAR(16) NULL,
|
||||
ADD INDEX idx_machines_customer (customer_id),
|
||||
ADD INDEX idx_machines_location (location_id),
|
||||
ADD CONSTRAINT fk_machines_customer
|
||||
FOREIGN KEY (customer_id) REFERENCES customers(id)
|
||||
ON DELETE SET NULL ON UPDATE CASCADE,
|
||||
ADD CONSTRAINT fk_machines_location
|
||||
FOREIGN KEY (location_id) REFERENCES locations(id)
|
||||
ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
|
||||
ALTER TABLE parts
|
||||
ADD COLUMN lot_id VARCHAR(16) NULL,
|
||||
ADD INDEX idx_parts_lot (lot_id),
|
||||
ADD CONSTRAINT fk_parts_lot
|
||||
FOREIGN KEY (lot_id) REFERENCES lots(id)
|
||||
ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS tickets (
|
||||
id VARCHAR(16) PRIMARY KEY,
|
||||
source VARCHAR(64) NOT NULL,
|
||||
external_id VARCHAR(255) NOT NULL,
|
||||
title VARCHAR(512) NOT NULL,
|
||||
status VARCHAR(64) NOT NULL,
|
||||
opened_at TIMESTAMP NULL,
|
||||
closed_at TIMESTAMP NULL,
|
||||
url VARCHAR(512) NULL,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
UNIQUE KEY uniq_tickets_source_external (source, external_id)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS ticket_links (
|
||||
id VARCHAR(16) PRIMARY KEY,
|
||||
ticket_id VARCHAR(16) NOT NULL,
|
||||
machine_id VARCHAR(16) NOT NULL,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
CONSTRAINT fk_ticket_links_ticket
|
||||
FOREIGN KEY (ticket_id) REFERENCES tickets(id)
|
||||
ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
CONSTRAINT fk_ticket_links_machine
|
||||
FOREIGN KEY (machine_id) REFERENCES machines(id)
|
||||
ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
UNIQUE KEY uniq_ticket_links_ticket_machine (ticket_id, machine_id),
|
||||
INDEX idx_ticket_links_machine (machine_id, ticket_id)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS lot_model_mappings (
|
||||
id VARCHAR(16) PRIMARY KEY,
|
||||
model VARCHAR(255) NOT NULL,
|
||||
lot_id VARCHAR(16) NOT NULL,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
UNIQUE KEY uniq_lot_model_mappings_model (model),
|
||||
CONSTRAINT fk_lot_model_mappings_lot
|
||||
FOREIGN KEY (lot_id) REFERENCES lots(id)
|
||||
ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
INDEX idx_lot_model_mappings_lot (lot_id)
|
||||
);
|
||||
|
||||
INSERT INTO id_sequences (entity_type, next_value)
|
||||
VALUES
|
||||
('customer', 1),
|
||||
('location', 1),
|
||||
('lot', 1),
|
||||
('ticket', 1),
|
||||
('ticket_link', 1),
|
||||
('lot_model_mapping', 1)
|
||||
ON DUPLICATE KEY UPDATE next_value = id_sequences.next_value;
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
33
migrations/0016_remove_legacy_features/up.sql
Normal file
33
migrations/0016_remove_legacy_features/up.sql
Normal file
@@ -0,0 +1,33 @@
|
||||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
|
||||
DROP TABLE IF EXISTS ticket_links;
|
||||
DROP TABLE IF EXISTS tickets;
|
||||
DROP TABLE IF EXISTS lot_model_mappings;
|
||||
|
||||
ALTER TABLE parts
|
||||
DROP FOREIGN KEY fk_parts_lot,
|
||||
DROP INDEX idx_parts_lot,
|
||||
DROP COLUMN lot_id;
|
||||
|
||||
ALTER TABLE machines
|
||||
DROP FOREIGN KEY fk_machines_customer,
|
||||
DROP FOREIGN KEY fk_machines_location,
|
||||
DROP INDEX idx_machines_customer,
|
||||
DROP INDEX idx_machines_location,
|
||||
DROP COLUMN customer_id,
|
||||
DROP COLUMN location_id;
|
||||
|
||||
ALTER TABLE projects
|
||||
DROP FOREIGN KEY fk_projects_customer,
|
||||
DROP INDEX idx_projects_customer,
|
||||
DROP INDEX uniq_projects_customer_name,
|
||||
DROP COLUMN customer_id;
|
||||
|
||||
DROP TABLE IF EXISTS lots;
|
||||
DROP TABLE IF EXISTS locations;
|
||||
DROP TABLE IF EXISTS customers;
|
||||
|
||||
DELETE FROM id_sequences
|
||||
WHERE entity_type IN ('customer', 'location', 'lot', 'ticket', 'ticket_link', 'lot_model_mapping');
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
Reference in New Issue
Block a user