
This also corrects the sleep schedule schema to actually store the `is_active` field as `boolean` (it was `numeric`, which is the same underlying field type in SQLite, but produces a different struct field in the sqlc-generated Go code). Ref: #104305
58 lines
1.6 KiB
SQL
58 lines
1.6 KiB
SQL
-- Some booleans were modeled as `numeric`. These are turned into `boolean` instead.
|
|
--
|
|
-- +goose Up
|
|
CREATE TABLE temp_sleep_schedules (
|
|
id integer NOT NULL,
|
|
created_at datetime NOT NULL,
|
|
updated_at datetime,
|
|
worker_id integer UNIQUE DEFAULT 0 NOT NULL,
|
|
is_active boolean DEFAULT false NOT NULL,
|
|
days_of_week text DEFAULT '' NOT NULL,
|
|
start_time text DEFAULT '' NOT NULL,
|
|
end_time text DEFAULT '' NOT NULL,
|
|
next_check datetime,
|
|
PRIMARY KEY (id),
|
|
CONSTRAINT fk_sleep_schedules_worker FOREIGN KEY (worker_id) REFERENCES workers(id) ON DELETE CASCADE
|
|
);
|
|
INSERT INTO temp_sleep_schedules SELECT
|
|
id,
|
|
created_at,
|
|
updated_at,
|
|
worker_id,
|
|
is_active,
|
|
days_of_week,
|
|
start_time,
|
|
end_time,
|
|
next_check
|
|
FROM sleep_schedules;
|
|
DROP TABLE sleep_schedules;
|
|
ALTER TABLE temp_sleep_schedules RENAME TO sleep_schedules;
|
|
|
|
-- +goose Down
|
|
CREATE TABLE temp_sleep_schedules (
|
|
id integer NOT NULL,
|
|
created_at datetime NOT NULL,
|
|
updated_at datetime,
|
|
worker_id integer UNIQUE DEFAULT 0 NOT NULL,
|
|
is_active numeric DEFAULT false NOT NULL,
|
|
days_of_week text DEFAULT '' NOT NULL,
|
|
start_time text DEFAULT '' NOT NULL,
|
|
end_time text DEFAULT '' NOT NULL,
|
|
next_check datetime,
|
|
PRIMARY KEY (id),
|
|
CONSTRAINT fk_sleep_schedules_worker FOREIGN KEY (worker_id) REFERENCES workers(id) ON DELETE CASCADE
|
|
);
|
|
INSERT INTO temp_sleep_schedules SELECT
|
|
id,
|
|
created_at,
|
|
updated_at,
|
|
worker_id,
|
|
is_active,
|
|
days_of_week,
|
|
start_time,
|
|
end_time,
|
|
next_check
|
|
FROM sleep_schedules;
|
|
DROP TABLE sleep_schedules;
|
|
ALTER TABLE temp_sleep_schedules RENAME TO sleep_schedules;
|