-- Migration: Update expense and expense_nonstocks tables -- Add location_id column to expenses table ALTER TABLE expenses ADD COLUMN IF NOT EXISTS location_id BIGINT NOT NULL DEFAULT 1; -- Add project_flock_id column to expenses table (JSON type) ALTER TABLE expenses ADD COLUMN IF NOT EXISTS project_flock_id JSON NULL; -- Add Foreign Key constraint to locations table DO $$ BEGIN IF EXISTS (SELECT 1 FROM pg_tables WHERE tablename = 'locations') THEN ALTER TABLE expenses ADD CONSTRAINT fk_expenses_location_id FOREIGN KEY (location_id) REFERENCES locations(id) ON DELETE RESTRICT ON UPDATE CASCADE; END IF; END $$; -- Create index for location_id CREATE INDEX IF NOT EXISTS idx_expenses_location_id ON expenses (location_id); -- Create index for project_flock_id CREATE INDEX IF NOT EXISTS idx_expenses_project_flock_id ON expenses ((project_flock_id::text)); -- Ensure kandang_id is nullable in expense_nonstocks table ALTER TABLE expense_nonstocks ALTER COLUMN kandang_id DROP NOT NULL;