From 766bf235275995fbc099fc043ffeb43e38cbf585 Mon Sep 17 00:00:00 2001 From: Brooke Kuhlmann Date: Tue, 21 Jul 2026 16:02:20 -0600 Subject: [PATCH] Added migration to rename device log special function column as command Necessary to rename this column for capturing _commands_ issued to the device. _This is a breaking change_ that will be addressed in subsequent commits. Issue: 345 Milestone: minor --- ..._device_log_function_columan_as_command.rb | 22 +++++++++++++++++++ config/db/structure.sql | 22 ++++--------------- 2 files changed, 26 insertions(+), 18 deletions(-) create mode 100644 config/db/migrate/20260721160742_rename_device_log_function_columan_as_command.rb diff --git a/config/db/migrate/20260721160742_rename_device_log_function_columan_as_command.rb b/config/db/migrate/20260721160742_rename_device_log_function_columan_as_command.rb new file mode 100644 index 00000000..f1f73384 --- /dev/null +++ b/config/db/migrate/20260721160742_rename_device_log_function_columan_as_command.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: true + +ROM::SQL.migration do + up do + alter_table :device_log do + set_column_type :special_function, String + rename_column :special_function, :command + end + + run "DROP TYPE IF EXISTS special_function_enum CASCADE;" + end + + down do + run "CREATE TYPE special_function_enum AS ENUM " \ + "('identify', 'sleep', 'add_wifi', 'restart_playlist', 'rewind', 'send_to_me', 'none');" + + alter_table :device_log do + set_column_type :command, :special_function_enum, using: "command::special_function_enum" + rename_column :command, :special_function + end + end +end diff --git a/config/db/structure.sql b/config/db/structure.sql index ba76e43f..b2cd080b 100644 --- a/config/db/structure.sql +++ b/config/db/structure.sql @@ -162,21 +162,6 @@ CREATE TYPE public.screen_kind_enum AS ENUM ( ); --- --- Name: special_function_enum; Type: TYPE; Schema: public; Owner: - --- - -CREATE TYPE public.special_function_enum AS ENUM ( - 'identify', - 'sleep', - 'add_wifi', - 'restart_playlist', - 'rewind', - 'send_to_me', - 'none' -); - - -- -- Name: wake_reason_enum; Type: TYPE; Schema: public; Owner: - -- @@ -338,7 +323,7 @@ CREATE TABLE public.device_log ( refresh_rate integer DEFAULT 0 CONSTRAINT device_logs_refresh_rate_not_null NOT NULL, sleep_duration integer DEFAULT 0 CONSTRAINT device_logs_sleep_duration_not_null NOT NULL, firmware_version text CONSTRAINT device_logs_firmware_version_not_null NOT NULL, - special_function public.special_function_enum CONSTRAINT device_logs_special_function_not_null NOT NULL, + command text CONSTRAINT device_logs_special_function_not_null NOT NULL, wake_reason public.wake_reason_enum DEFAULT 'timer'::public.wake_reason_enum CONSTRAINT device_logs_wake_reason_not_null NOT NULL, battery_voltage double precision DEFAULT 0 CONSTRAINT device_logs_battery_voltage_not_null NOT NULL, free_heap_size integer DEFAULT 0 CONSTRAINT device_logs_free_heap_size_not_null NOT NULL, @@ -1322,7 +1307,7 @@ CREATE INDEX device_logs_device_id_index ON public.device_log USING btree (devic -- Name: device_logs_special_function_index; Type: INDEX; Schema: public; Owner: - -- -CREATE INDEX device_logs_special_function_index ON public.device_log USING btree (special_function); +CREATE INDEX device_logs_special_function_index ON public.device_log USING btree (command); -- @@ -1819,4 +1804,5 @@ INSERT INTO schema_migrations (filename) VALUES ('20260618094125_add_screen_template_id_column.rb'), ('20260630091508_add_device_log_level_column.rb'), ('20260714090149_add_device_api_key_column.rb'), -('20260721160734_add_device_command_column.rb'); +('20260721160734_add_device_command_column.rb'), +('20260721160742_rename_device_log_function_columan_as_command.rb');