Add registry, ingest, timeline, tickets features
This commit is contained in:
7
migrations/0002_registry/down.sql
Normal file
7
migrations/0002_registry/down.sql
Normal file
@@ -0,0 +1,7 @@
|
||||
DROP TABLE IF EXISTS installations;
|
||||
DROP TABLE IF EXISTS components;
|
||||
DROP TABLE IF EXISTS assets;
|
||||
DROP TABLE IF EXISTS lots;
|
||||
DROP TABLE IF EXISTS locations;
|
||||
DROP TABLE IF EXISTS projects;
|
||||
DROP TABLE IF EXISTS customers;
|
||||
95
migrations/0002_registry/up.sql
Normal file
95
migrations/0002_registry/up.sql
Normal file
@@ -0,0 +1,95 @@
|
||||
CREATE TABLE IF NOT EXISTS customers (
|
||||
id BIGINT AUTO_INCREMENT 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 projects (
|
||||
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
||||
customer_id BIGINT NOT NULL,
|
||||
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,
|
||||
CONSTRAINT fk_projects_customer
|
||||
FOREIGN KEY (customer_id) REFERENCES customers(id)
|
||||
ON DELETE RESTRICT ON UPDATE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS locations (
|
||||
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
||||
customer_id BIGINT NOT NULL,
|
||||
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,
|
||||
CONSTRAINT fk_locations_customer
|
||||
FOREIGN KEY (customer_id) REFERENCES customers(id)
|
||||
ON DELETE RESTRICT ON UPDATE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS lots (
|
||||
id BIGINT AUTO_INCREMENT 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)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS assets (
|
||||
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
||||
project_id BIGINT NOT NULL,
|
||||
location_id BIGINT NULL,
|
||||
name VARCHAR(255) NOT NULL,
|
||||
vendor VARCHAR(255) NULL,
|
||||
model VARCHAR(255) NULL,
|
||||
vendor_serial VARCHAR(255) NOT NULL,
|
||||
asset_tag VARCHAR(255) NULL,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
CONSTRAINT fk_assets_project
|
||||
FOREIGN KEY (project_id) REFERENCES projects(id)
|
||||
ON DELETE RESTRICT ON UPDATE CASCADE,
|
||||
CONSTRAINT fk_assets_location
|
||||
FOREIGN KEY (location_id) REFERENCES locations(id)
|
||||
ON DELETE SET NULL ON UPDATE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS components (
|
||||
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
||||
lot_id BIGINT NULL,
|
||||
vendor VARCHAR(255) NULL,
|
||||
model VARCHAR(255) NULL,
|
||||
vendor_serial VARCHAR(255) NOT NULL,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
CONSTRAINT fk_components_lot
|
||||
FOREIGN KEY (lot_id) REFERENCES lots(id)
|
||||
ON DELETE SET NULL ON UPDATE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS installations (
|
||||
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
||||
asset_id BIGINT NOT NULL,
|
||||
component_id BIGINT NOT NULL,
|
||||
installed_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
removed_at TIMESTAMP NULL,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
CONSTRAINT fk_installations_asset
|
||||
FOREIGN KEY (asset_id) REFERENCES assets(id)
|
||||
ON DELETE RESTRICT ON UPDATE CASCADE,
|
||||
CONSTRAINT fk_installations_component
|
||||
FOREIGN KEY (component_id) REFERENCES components(id)
|
||||
ON DELETE RESTRICT ON UPDATE CASCADE
|
||||
);
|
||||
|
||||
CREATE INDEX idx_assets_vendor_serial ON assets(vendor_serial);
|
||||
CREATE INDEX idx_components_vendor_serial ON components(vendor_serial);
|
||||
CREATE INDEX idx_installations_component_removed ON installations(component_id, removed_at);
|
||||
|
||||
CREATE INDEX idx_projects_customer ON projects(customer_id);
|
||||
CREATE INDEX idx_assets_project ON assets(project_id);
|
||||
CREATE INDEX idx_assets_location ON assets(location_id);
|
||||
CREATE INDEX idx_components_lot ON components(lot_id);
|
||||
Reference in New Issue
Block a user