diff --git a/backend/migrations/00002_create_farm_and_cropland_tables.sql b/backend/migrations/00002_create_farm_and_cropland_tables.sql index bd5a114..0dbd026 100644 --- a/backend/migrations/00002_create_farm_and_cropland_tables.sql +++ b/backend/migrations/00002_create_farm_and_cropland_tables.sql @@ -12,7 +12,7 @@ CREATE TABLE soil_conditions ( CREATE TABLE harvest_units ( id SERIAL PRIMARY KEY, name TEXT NOT NULL UNIQUE -); +); CREATE TABLE plants ( uuid UUID PRIMARY KEY DEFAULT gen_random_uuid(), diff --git a/backend/migrations/00005_create_inventory_status.sql b/backend/migrations/00005_create_inventory_status.sql new file mode 100644 index 0000000..4f634f2 --- /dev/null +++ b/backend/migrations/00005_create_inventory_status.sql @@ -0,0 +1,5 @@ +-- +goose Up +CREATE TABLE inventory_status ( + id SERIAL PRIMARY KEY, + name TEXT NOT NULL UNIQUE +); diff --git a/backend/migrations/00006_modify_inventory_table.sql b/backend/migrations/00006_modify_inventory_table.sql new file mode 100644 index 0000000..44fb45c --- /dev/null +++ b/backend/migrations/00006_modify_inventory_table.sql @@ -0,0 +1,15 @@ +-- +goose Up +ALTER TABLE inventory_items +ADD COLUMN status_id INT; + +UPDATE inventory_items +SET status_id = (SELECT id FROM inventory_status WHERE name = inventory_items.status); + +ALTER TABLE inventory_items +DROP COLUMN status; + +ALTER TABLE inventory_items +ADD CONSTRAINT fk_inventory_items_status FOREIGN KEY (status_id) REFERENCES inventory_status(id) ON DELETE CASCADE; + +CREATE INDEX idx_inventory_items_status_id ON inventory_items(status_id); + diff --git a/backend/migrations/00007_create_inventory_status.sql b/backend/migrations/00007_create_inventory_status.sql new file mode 100644 index 0000000..7e54cc9 --- /dev/null +++ b/backend/migrations/00007_create_inventory_status.sql @@ -0,0 +1,7 @@ +-- +goose Up +-- Insert default statuses into the inventory_status table +INSERT INTO inventory_status (name) +VALUES + ('In Stock'), + ('Low Stock'), + ('Out Of Stock'); \ No newline at end of file