18 lines
465 B
PL/PgSQL
18 lines
465 B
PL/PgSQL
-- Location names are meaningful within a customer and hierarchy, not globally.
|
|
-- Example: every building may have an "1 Sal".
|
|
|
|
BEGIN;
|
|
|
|
ALTER TABLE locations_locations
|
|
DROP CONSTRAINT IF EXISTS locations_locations_name_key;
|
|
|
|
CREATE UNIQUE INDEX IF NOT EXISTS idx_locations_name_scope_unique
|
|
ON locations_locations (
|
|
COALESCE(parent_location_id, 0),
|
|
COALESCE(customer_id, 0),
|
|
lower(name)
|
|
)
|
|
WHERE deleted_at IS NULL;
|
|
|
|
COMMIT;
|