diff --git a/internal/manager/persistence/migrations/0005_smallint_to_boolean.sql b/internal/manager/persistence/migrations/0005_smallint_to_boolean.sql new file mode 100644 index 00000000..c7d4a523 --- /dev/null +++ b/internal/manager/persistence/migrations/0005_smallint_to_boolean.sql @@ -0,0 +1,84 @@ +-- Some booleans were modeled as `smallint`. These are turned into `boolean` instead. +-- +-- +goose Up +CREATE TABLE temp_workers ( + id integer NOT NULL, + created_at datetime NOT NULL, + updated_at datetime, + uuid varchar(36) UNIQUE DEFAULT '' NOT NULL, + secret varchar(255) DEFAULT '' NOT NULL, + name varchar(64) DEFAULT '' NOT NULL, + address varchar(39) DEFAULT '' NOT NULL, + platform varchar(16) DEFAULT '' NOT NULL, + software varchar(32) DEFAULT '' NOT NULL, + status varchar(16) DEFAULT '' NOT NULL, + last_seen_at datetime, + status_requested varchar(16) DEFAULT '' NOT NULL, + lazy_status_request boolean DEFAULT false NOT NULL, + supported_task_types varchar(255) DEFAULT '' NOT NULL, + deleted_at datetime, + can_restart boolean DEFAULT false NOT NULL, + PRIMARY KEY (id) +); +INSERT INTO temp_workers SELECT + id, + created_at, + updated_at, + uuid, + secret, + name, + address, + platform, + software, + status, + last_seen_at, + status_requested, + lazy_status_request, + supported_task_types, + deleted_at, + can_restart +FROM workers; +DROP TABLE workers; +ALTER TABLE temp_workers RENAME TO workers; + + +-- +goose Down +CREATE TABLE temp_workers ( + id integer NOT NULL, + created_at datetime NOT NULL, + updated_at datetime, + uuid varchar(36) UNIQUE DEFAULT '' NOT NULL, + secret varchar(255) DEFAULT '' NOT NULL, + name varchar(64) DEFAULT '' NOT NULL, + address varchar(39) DEFAULT '' NOT NULL, + platform varchar(16) DEFAULT '' NOT NULL, + software varchar(32) DEFAULT '' NOT NULL, + status varchar(16) DEFAULT '' NOT NULL, + last_seen_at datetime, + status_requested varchar(16) DEFAULT '' NOT NULL, + lazy_status_request smallint DEFAULT false NOT NULL, + supported_task_types varchar(255) DEFAULT '' NOT NULL, + deleted_at datetime, + can_restart smallint DEFAULT false NOT NULL, + PRIMARY KEY (id) +); +INSERT INTO temp_workers SELECT + id, + created_at, + updated_at, + uuid, + secret, + name, + address, + platform, + software, + status, + last_seen_at, + status_requested, + lazy_status_request, + supported_task_types, + deleted_at, + can_restart +FROM workers; +DROP TABLE workers; +ALTER TABLE temp_workers RENAME TO workers; diff --git a/internal/manager/persistence/sqlc/models.go b/internal/manager/persistence/sqlc/models.go index 5bee5d96..e49ff97f 100644 --- a/internal/manager/persistence/sqlc/models.go +++ b/internal/manager/persistence/sqlc/models.go @@ -94,10 +94,10 @@ type Worker struct { Status string LastSeenAt sql.NullTime StatusRequested string - LazyStatusRequest int64 + LazyStatusRequest bool SupportedTaskTypes string DeletedAt sql.NullTime - CanRestart int64 + CanRestart bool } type WorkerTag struct { diff --git a/internal/manager/persistence/sqlc/schema.sql b/internal/manager/persistence/sqlc/schema.sql index 916fe101..b5f7c3de 100644 --- a/internal/manager/persistence/sqlc/schema.sql +++ b/internal/manager/persistence/sqlc/schema.sql @@ -109,10 +109,10 @@ CREATE TABLE workers ( status varchar(16) DEFAULT '' NOT NULL, last_seen_at datetime, status_requested varchar(16) DEFAULT '' NOT NULL, - lazy_status_request smallint DEFAULT false NOT NULL, + lazy_status_request boolean DEFAULT false NOT NULL, supported_task_types varchar(255) DEFAULT '' NOT NULL, deleted_at datetime, - can_restart smallint DEFAULT false NOT NULL, + can_restart boolean DEFAULT false NOT NULL, PRIMARY KEY (id) ); CREATE INDEX idx_jobs_uuid ON jobs(uuid); diff --git a/internal/manager/persistence/workers.go b/internal/manager/persistence/workers.go index c7d87f9e..50e5a176 100644 --- a/internal/manager/persistence/workers.go +++ b/internal/manager/persistence/workers.go @@ -251,9 +251,9 @@ func convertSqlcWorker(worker sqlc.Worker) Worker { Software: worker.Software, Status: api.WorkerStatus(worker.Status), LastSeenAt: worker.LastSeenAt.Time, - CanRestart: worker.CanRestart != 0, + CanRestart: worker.CanRestart, StatusRequested: api.WorkerStatus(worker.StatusRequested), - LazyStatusRequest: worker.LazyStatusRequest != 0, + LazyStatusRequest: worker.LazyStatusRequest, SupportedTaskTypes: worker.SupportedTaskTypes, } }