浏览代码

fix: use tstzrange for timestamptz columns, create extension before ALTER TABLE

neyrogovnarik 1 月之前
父节点
当前提交
57c31d65ee
共有 1 个文件被更改,包括 6 次插入5 次删除
  1. 6 5
      backend/migrations/000007_add_booking_exclusion_constraint.up.sql

+ 6 - 5
backend/migrations/000007_add_booking_exclusion_constraint.up.sql

@@ -1,8 +1,9 @@
+-- Create extension for gist index if not exists
+CREATE EXTENSION IF NOT EXISTS btree_gist;
+
 -- Add exclusion constraint to prevent overlapping bookings for the same place
 -- Only applies to non-cancelled bookings
+-- tstzrange because columns are timestamp with time zone
 ALTER TABLE bookings ADD CONSTRAINT no_overlapping_bookings 
-EXCLUDE USING gist (place_id WITH =, tsrange(start_time, end_time) WITH &&)
-WHERE (status != 'cancelled');
-
--- Create extension for gist index if not exists
-CREATE EXTENSION IF NOT EXISTS btree_gist;
+EXCLUDE USING gist (place_id WITH =, tstzrange(start_time, end_time) WITH &&)
+WHERE (status != 'cancelled');