whFalsa / supabase /migrations /202605310001_driver_trip_departure_date_time.sql
codeBOKER's picture
first commit
102dd4f
Raw
History Blame Contribute Delete
1.71 kB
do $$
declare
departure_time_type text;
begin
select data_type
into departure_time_type
from information_schema.columns
where table_schema = 'public'
and table_name = 'driver_trips'
and column_name = 'departure_time';
if departure_time_type = 'timestamp with time zone' then
alter table public.driver_trips
add column if not exists departure_date date;
alter table public.driver_trips
add column if not exists departure_time_bucket text;
update public.driver_trips
set
departure_date = (departure_time at time zone 'Asia/Aden')::date,
departure_time_bucket = case
when extract(hour from departure_time at time zone 'Asia/Aden') < 12 then 'morning'
when extract(hour from departure_time at time zone 'Asia/Aden') < 18 then 'noon'
else 'night'
end
where departure_date is null
or departure_time_bucket is null;
alter table public.driver_trips
alter column departure_date set not null;
alter table public.driver_trips
drop column departure_time;
alter table public.driver_trips
rename column departure_time_bucket to departure_time;
end if;
end;
$$;
alter table public.driver_trips
alter column departure_time set not null;
alter table public.driver_trips
drop constraint if exists driver_trips_departure_time_check;
alter table public.driver_trips
add constraint driver_trips_departure_time_check
check (departure_time in ('morning', 'noon', 'night'));
drop index if exists public.idx_driver_trips_active_route;
create index if not exists idx_driver_trips_active_route
on public.driver_trips(status, departure, destination, departure_date, departure_time);