26 lines
1.0 KiB
SQL
26 lines
1.0 KiB
SQL
-- Drop the old packing_lists table and recreate with correct schema
|
|
DROP TABLE IF EXISTS packing_list_serials CASCADE;
|
|
DROP TABLE IF EXISTS packing_lists CASCADE;
|
|
|
|
CREATE TABLE packing_lists (
|
|
id SERIAL PRIMARY KEY,
|
|
purchase_order_id INTEGER NOT NULL REFERENCES purchase_orders(id),
|
|
po_item_id INTEGER NOT NULL REFERENCES purchase_order_items(id),
|
|
packing_number VARCHAR(50) NOT NULL UNIQUE,
|
|
quantity INTEGER NOT NULL DEFAULT 0,
|
|
notes TEXT,
|
|
created_at TIMESTAMPTZ DEFAULT NOW()
|
|
);
|
|
|
|
CREATE TABLE packing_list_serials (
|
|
id SERIAL PRIMARY KEY,
|
|
packing_list_id INTEGER NOT NULL REFERENCES packing_lists(id) ON DELETE CASCADE,
|
|
serial_number VARCHAR(200) NOT NULL,
|
|
created_at TIMESTAMPTZ DEFAULT NOW()
|
|
);
|
|
|
|
CREATE INDEX idx_packing_lists_po ON packing_lists(purchase_order_id);
|
|
CREATE INDEX idx_packing_lists_item ON packing_lists(po_item_id);
|
|
CREATE INDEX idx_packing_serials_list ON packing_list_serials(packing_list_id);
|
|
CREATE UNIQUE INDEX idx_packing_serials_unique ON packing_list_serials(serial_number);
|