mirror of
https://github.com/usetrmnl/terminus.git
synced 2026-08-13 14:29:27 -07:00
Necessary since this index wasn't unique enough and was causing conflicts with device IDs associated with extensions. There is no equivalent down action for this migration since you could get a unique index violation (as mentioned). Issue: 360 Milestone: minor
1814 lines
48 KiB
PL/PgSQL
1814 lines
48 KiB
PL/PgSQL
--
|
|
-- PostgreSQL database dump
|
|
--
|
|
|
|
|
|
|
|
SET statement_timeout = 0;
|
|
SET lock_timeout = 0;
|
|
SET idle_in_transaction_session_timeout = 0;
|
|
SET transaction_timeout = 0;
|
|
SET client_encoding = 'UTF8';
|
|
SET standard_conforming_strings = on;
|
|
SELECT pg_catalog.set_config('search_path', '', false);
|
|
SET check_function_bodies = false;
|
|
SET xmloption = content;
|
|
SET client_min_messages = warning;
|
|
SET row_security = off;
|
|
|
|
--
|
|
-- Name: citext; Type: EXTENSION; Schema: -; Owner: -
|
|
--
|
|
|
|
CREATE EXTENSION IF NOT EXISTS citext WITH SCHEMA public;
|
|
|
|
|
|
--
|
|
-- Name: EXTENSION citext; Type: COMMENT; Schema: -; Owner: -
|
|
--
|
|
|
|
COMMENT ON EXTENSION citext IS 'data type for case-insensitive character strings';
|
|
|
|
|
|
--
|
|
-- Name: device_log_level_enum; Type: TYPE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TYPE public.device_log_level_enum AS ENUM (
|
|
'debug',
|
|
'info',
|
|
'warn',
|
|
'error',
|
|
'fatal',
|
|
'any'
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: device_sensor_kind; Type: TYPE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TYPE public.device_sensor_kind AS ENUM (
|
|
'carbon_dioxide',
|
|
'humidity',
|
|
'pressure',
|
|
'temperature'
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: device_sensor_source; Type: TYPE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TYPE public.device_sensor_source AS ENUM (
|
|
'device',
|
|
'server'
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: extension_exchange_verb_enum; Type: TYPE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TYPE public.extension_exchange_verb_enum AS ENUM (
|
|
'get',
|
|
'post'
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: extension_kind_enum; Type: TYPE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TYPE public.extension_kind_enum AS ENUM (
|
|
'image',
|
|
'poll',
|
|
'secure',
|
|
'static',
|
|
'webhook'
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: extension_unit_enum; Type: TYPE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TYPE public.extension_unit_enum AS ENUM (
|
|
'none',
|
|
'minute',
|
|
'hour',
|
|
'day',
|
|
'week',
|
|
'month'
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: extension_verb_enum; Type: TYPE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TYPE public.extension_verb_enum AS ENUM (
|
|
'get',
|
|
'post'
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: palette_kind; Type: TYPE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TYPE public.palette_kind AS ENUM (
|
|
'trmnl',
|
|
'terminus'
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: playlist_item_repeat_type_enum; Type: TYPE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TYPE public.playlist_item_repeat_type_enum AS ENUM (
|
|
'none',
|
|
'minute',
|
|
'hour',
|
|
'day',
|
|
'week',
|
|
'month',
|
|
'year'
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: playlist_mode_enum; Type: TYPE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TYPE public.playlist_mode_enum AS ENUM (
|
|
'automatic',
|
|
'manual'
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: screen_kind_enum; Type: TYPE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TYPE public.screen_kind_enum AS ENUM (
|
|
'error',
|
|
'general',
|
|
'notification',
|
|
'sleep',
|
|
'wake',
|
|
'welcome'
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: wake_reason_enum; Type: TYPE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TYPE public.wake_reason_enum AS ENUM (
|
|
'powercycle',
|
|
'all',
|
|
'EXT0',
|
|
'EXT1',
|
|
'timer',
|
|
'touchpad',
|
|
'ulp',
|
|
'button',
|
|
'uart',
|
|
'wifi',
|
|
'cocpu',
|
|
'cocpu_trap_trig',
|
|
'bt'
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: wifi_status_enum; Type: TYPE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TYPE public.wifi_status_enum AS ENUM (
|
|
'no_shield',
|
|
'idle_status',
|
|
'no_ssid_avail',
|
|
'scan_completed',
|
|
'connected',
|
|
'connect_failed',
|
|
'connection_lost',
|
|
'disconnected'
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: rodauth_get_salt(bigint); Type: FUNCTION; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE FUNCTION public.rodauth_get_salt(acct_id bigint) RETURNS text
|
|
LANGUAGE plpgsql SECURITY DEFINER
|
|
SET search_path TO 'public', 'pg_temp'
|
|
AS $$
|
|
DECLARE salt text;
|
|
BEGIN
|
|
SELECT
|
|
substr(password_hash, 0, 30) INTO salt
|
|
FROM "user_password_hash"
|
|
WHERE acct_id = id;
|
|
RETURN salt;
|
|
END;
|
|
$$;
|
|
|
|
|
|
--
|
|
-- Name: rodauth_valid_password_hash(bigint, text); Type: FUNCTION; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE FUNCTION public.rodauth_valid_password_hash(acct_id bigint, hash text) RETURNS boolean
|
|
LANGUAGE plpgsql SECURITY DEFINER
|
|
SET search_path TO 'public', 'pg_temp'
|
|
AS $$
|
|
DECLARE valid boolean;
|
|
BEGIN
|
|
SELECT password_hash = hash INTO valid
|
|
FROM "user_password_hash"
|
|
WHERE acct_id = id;
|
|
RETURN valid;
|
|
END;
|
|
$$;
|
|
|
|
|
|
SET default_tablespace = '';
|
|
|
|
SET default_table_access_method = heap;
|
|
|
|
--
|
|
-- Name: account; Type: TABLE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TABLE public.account (
|
|
id integer NOT NULL,
|
|
name text NOT NULL,
|
|
label text NOT NULL,
|
|
settings jsonb DEFAULT '{}'::jsonb NOT NULL,
|
|
created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
updated_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: account_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE public.account ALTER COLUMN id ADD GENERATED BY DEFAULT AS IDENTITY (
|
|
SEQUENCE NAME public.account_id_seq
|
|
START WITH 1
|
|
INCREMENT BY 1
|
|
NO MINVALUE
|
|
NO MAXVALUE
|
|
CACHE 1
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: device; Type: TABLE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TABLE public.device (
|
|
id integer CONSTRAINT devices_id_not_null NOT NULL,
|
|
label text,
|
|
mac_address text,
|
|
firmware_version text,
|
|
wifi_signal integer DEFAULT 0 CONSTRAINT devices_wifi_not_null NOT NULL,
|
|
battery_voltage double precision DEFAULT 0 CONSTRAINT devices_battery_not_null NOT NULL,
|
|
refresh_rate integer DEFAULT 900 CONSTRAINT devices_refresh_rate_not_null NOT NULL,
|
|
image_timeout integer DEFAULT 0 CONSTRAINT devices_image_timeout_not_null NOT NULL,
|
|
width integer DEFAULT 0 CONSTRAINT devices_width_not_null NOT NULL,
|
|
height integer DEFAULT 0 CONSTRAINT devices_height_not_null NOT NULL,
|
|
created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP CONSTRAINT devices_created_at_not_null NOT NULL,
|
|
updated_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP CONSTRAINT devices_updated_at_not_null NOT NULL,
|
|
firmware_update boolean DEFAULT true CONSTRAINT devices_firmware_update_not_null NOT NULL,
|
|
sleep_start_at time without time zone,
|
|
sleep_stop_at time without time zone,
|
|
model_id integer NOT NULL,
|
|
playlist_id integer,
|
|
battery_charge double precision DEFAULT 0 NOT NULL,
|
|
wake_reason text,
|
|
synced_at timestamp without time zone,
|
|
charging boolean DEFAULT false NOT NULL,
|
|
image_cached boolean DEFAULT false NOT NULL,
|
|
wake_duration integer DEFAULT 0 NOT NULL,
|
|
display_compatibility boolean DEFAULT false NOT NULL,
|
|
display_profile text DEFAULT 'default'::text NOT NULL,
|
|
firmware_profile boolean DEFAULT false NOT NULL,
|
|
touch_bar text DEFAULT 'tap'::text NOT NULL,
|
|
wifi_band double precision DEFAULT 0 NOT NULL,
|
|
api_key text,
|
|
command text DEFAULT 'none'::text NOT NULL
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: device_log; Type: TABLE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TABLE public.device_log (
|
|
id integer CONSTRAINT device_logs_id_not_null NOT NULL,
|
|
device_id integer CONSTRAINT device_logs_device_id_not_null NOT NULL,
|
|
external_id integer CONSTRAINT device_logs_external_id_not_null NOT NULL,
|
|
message text CONSTRAINT device_logs_message_not_null NOT NULL,
|
|
source_path text CONSTRAINT device_logs_source_path_not_null NOT NULL,
|
|
source_line integer CONSTRAINT device_logs_source_line_not_null NOT NULL,
|
|
retry integer DEFAULT 0 CONSTRAINT device_logs_retry_not_null NOT NULL,
|
|
wifi_signal integer DEFAULT 0 CONSTRAINT device_logs_wifi_signal_not_null NOT NULL,
|
|
wifi_status public.wifi_status_enum DEFAULT 'disconnected'::public.wifi_status_enum CONSTRAINT device_logs_wifi_status_not_null NOT NULL,
|
|
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,
|
|
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,
|
|
created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP CONSTRAINT device_logs_created_at_not_null NOT NULL,
|
|
updated_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP CONSTRAINT device_logs_updated_at_not_null NOT NULL,
|
|
max_alloc_size integer DEFAULT 0 CONSTRAINT device_logs_max_alloc_size_not_null NOT NULL,
|
|
level public.device_log_level_enum DEFAULT 'any'::public.device_log_level_enum NOT NULL
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: device_logs_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE public.device_log ALTER COLUMN id ADD GENERATED BY DEFAULT AS IDENTITY (
|
|
SEQUENCE NAME public.device_logs_id_seq
|
|
START WITH 1
|
|
INCREMENT BY 1
|
|
NO MINVALUE
|
|
NO MAXVALUE
|
|
CACHE 1
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: device_sensor; Type: TABLE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TABLE public.device_sensor (
|
|
id integer NOT NULL,
|
|
device_id integer NOT NULL,
|
|
make text NOT NULL,
|
|
model text NOT NULL,
|
|
kind public.device_sensor_kind NOT NULL,
|
|
value double precision DEFAULT 0 NOT NULL,
|
|
unit text NOT NULL,
|
|
source public.device_sensor_source DEFAULT 'device'::public.device_sensor_source NOT NULL,
|
|
created_at timestamp without time zone DEFAULT date_trunc('second'::text, CURRENT_TIMESTAMP) NOT NULL
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: device_sensor_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE public.device_sensor ALTER COLUMN id ADD GENERATED BY DEFAULT AS IDENTITY (
|
|
SEQUENCE NAME public.device_sensor_id_seq
|
|
START WITH 1
|
|
INCREMENT BY 1
|
|
NO MINVALUE
|
|
NO MAXVALUE
|
|
CACHE 1
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: devices_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE public.device ALTER COLUMN id ADD GENERATED BY DEFAULT AS IDENTITY (
|
|
SEQUENCE NAME public.devices_id_seq
|
|
START WITH 1
|
|
INCREMENT BY 1
|
|
NO MINVALUE
|
|
NO MAXVALUE
|
|
CACHE 1
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: extension; Type: TABLE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TABLE public.extension (
|
|
id bigint NOT NULL,
|
|
name text NOT NULL,
|
|
label text NOT NULL,
|
|
logo_data jsonb DEFAULT '{}'::jsonb NOT NULL,
|
|
description text,
|
|
kind public.extension_kind_enum DEFAULT 'poll'::public.extension_kind_enum NOT NULL,
|
|
tags text[] DEFAULT '{}'::text[] NOT NULL,
|
|
static_body jsonb DEFAULT '{}'::jsonb CONSTRAINT extension_body_not_null NOT NULL,
|
|
fields jsonb DEFAULT '{}'::jsonb NOT NULL,
|
|
template text,
|
|
data jsonb DEFAULT '{}'::jsonb NOT NULL,
|
|
"interval" integer DEFAULT 1 NOT NULL,
|
|
unit public.extension_unit_enum DEFAULT 'none'::public.extension_unit_enum NOT NULL,
|
|
days text[] DEFAULT '{}'::text[] NOT NULL,
|
|
last_day_of_month boolean DEFAULT false NOT NULL,
|
|
start_at timestamp without time zone DEFAULT date_trunc('day'::text, CURRENT_TIMESTAMP) NOT NULL,
|
|
created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
updated_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
mode text DEFAULT 'text'::text NOT NULL
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: extension_device; Type: TABLE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TABLE public.extension_device (
|
|
id integer NOT NULL,
|
|
extension_id integer NOT NULL,
|
|
device_id integer NOT NULL,
|
|
created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
updated_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: extension_device_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE public.extension_device ALTER COLUMN id ADD GENERATED BY DEFAULT AS IDENTITY (
|
|
SEQUENCE NAME public.extension_device_id_seq
|
|
START WITH 1
|
|
INCREMENT BY 1
|
|
NO MINVALUE
|
|
NO MAXVALUE
|
|
CACHE 1
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: extension_exchange; Type: TABLE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TABLE public.extension_exchange (
|
|
id bigint NOT NULL,
|
|
extension_id integer NOT NULL,
|
|
headers jsonb DEFAULT '{}'::jsonb NOT NULL,
|
|
verb public.extension_exchange_verb_enum DEFAULT 'get'::public.extension_exchange_verb_enum NOT NULL,
|
|
template text NOT NULL,
|
|
body jsonb DEFAULT '{}'::jsonb NOT NULL,
|
|
data jsonb DEFAULT '{}'::jsonb NOT NULL,
|
|
errors jsonb DEFAULT '{}'::jsonb NOT NULL,
|
|
refreshed_at timestamp without time zone,
|
|
created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
updated_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: extension_exchange_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE public.extension_exchange ALTER COLUMN id ADD GENERATED BY DEFAULT AS IDENTITY (
|
|
SEQUENCE NAME public.extension_exchange_id_seq
|
|
START WITH 1
|
|
INCREMENT BY 1
|
|
NO MINVALUE
|
|
NO MAXVALUE
|
|
CACHE 1
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: extension_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE public.extension ALTER COLUMN id ADD GENERATED BY DEFAULT AS IDENTITY (
|
|
SEQUENCE NAME public.extension_id_seq
|
|
START WITH 1
|
|
INCREMENT BY 1
|
|
NO MINVALUE
|
|
NO MAXVALUE
|
|
CACHE 1
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: extension_model; Type: TABLE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TABLE public.extension_model (
|
|
id integer NOT NULL,
|
|
extension_id integer NOT NULL,
|
|
model_id integer NOT NULL,
|
|
created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
updated_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: extension_model_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE public.extension_model ALTER COLUMN id ADD GENERATED BY DEFAULT AS IDENTITY (
|
|
SEQUENCE NAME public.extension_model_id_seq
|
|
START WITH 1
|
|
INCREMENT BY 1
|
|
NO MINVALUE
|
|
NO MAXVALUE
|
|
CACHE 1
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: firmware; Type: TABLE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TABLE public.firmware (
|
|
id integer CONSTRAINT firmwares_id_not_null NOT NULL,
|
|
version text CONSTRAINT firmwares_version_not_null NOT NULL,
|
|
kind text DEFAULT 'terminus'::text CONSTRAINT firmwares_kind_not_null NOT NULL,
|
|
attachment_data jsonb DEFAULT '{}'::jsonb CONSTRAINT firmwares_attachment_data_not_null NOT NULL,
|
|
created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP CONSTRAINT firmwares_created_at_not_null NOT NULL,
|
|
updated_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP CONSTRAINT firmwares_updated_at_not_null NOT NULL
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: firmwares_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE public.firmware ALTER COLUMN id ADD GENERATED BY DEFAULT AS IDENTITY (
|
|
SEQUENCE NAME public.firmwares_id_seq
|
|
START WITH 1
|
|
INCREMENT BY 1
|
|
NO MINVALUE
|
|
NO MAXVALUE
|
|
CACHE 1
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: membership; Type: TABLE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TABLE public.membership (
|
|
id integer NOT NULL,
|
|
account_id integer NOT NULL,
|
|
user_id integer NOT NULL,
|
|
created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
updated_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: membership_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE public.membership ALTER COLUMN id ADD GENERATED BY DEFAULT AS IDENTITY (
|
|
SEQUENCE NAME public.membership_id_seq
|
|
START WITH 1
|
|
INCREMENT BY 1
|
|
NO MINVALUE
|
|
NO MAXVALUE
|
|
CACHE 1
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: model; Type: TABLE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TABLE public.model (
|
|
id integer NOT NULL,
|
|
name text NOT NULL,
|
|
label text NOT NULL,
|
|
description text,
|
|
width integer DEFAULT 0 NOT NULL,
|
|
height integer DEFAULT 0 NOT NULL,
|
|
mime_type text DEFAULT 'image/png'::text NOT NULL,
|
|
colors integer DEFAULT 2 NOT NULL,
|
|
bit_depth integer DEFAULT 1 NOT NULL,
|
|
rotation integer DEFAULT 0 NOT NULL,
|
|
offset_x integer DEFAULT 0 NOT NULL,
|
|
offset_y integer DEFAULT 0 NOT NULL,
|
|
created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
updated_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
kind text DEFAULT 'terminus'::text NOT NULL,
|
|
scale_factor double precision DEFAULT 1 NOT NULL,
|
|
css jsonb DEFAULT '{}'::jsonb NOT NULL,
|
|
default_palette_id integer
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: model_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE public.model ALTER COLUMN id ADD GENERATED BY DEFAULT AS IDENTITY (
|
|
SEQUENCE NAME public.model_id_seq
|
|
START WITH 1
|
|
INCREMENT BY 1
|
|
NO MINVALUE
|
|
NO MAXVALUE
|
|
CACHE 1
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: model_palette; Type: TABLE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TABLE public.model_palette (
|
|
id integer NOT NULL,
|
|
model_id integer NOT NULL,
|
|
palette_id integer NOT NULL,
|
|
created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
updated_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: model_palette_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE public.model_palette ALTER COLUMN id ADD GENERATED BY DEFAULT AS IDENTITY (
|
|
SEQUENCE NAME public.model_palette_id_seq
|
|
START WITH 1
|
|
INCREMENT BY 1
|
|
NO MINVALUE
|
|
NO MAXVALUE
|
|
CACHE 1
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: palette; Type: TABLE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TABLE public.palette (
|
|
id integer NOT NULL,
|
|
name text NOT NULL,
|
|
label text NOT NULL,
|
|
kind public.palette_kind DEFAULT 'terminus'::public.palette_kind NOT NULL,
|
|
grays integer DEFAULT 0 NOT NULL,
|
|
colors text[] DEFAULT '{}'::text[] NOT NULL,
|
|
framework_class text,
|
|
created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
updated_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: palette_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE public.palette ALTER COLUMN id ADD GENERATED BY DEFAULT AS IDENTITY (
|
|
SEQUENCE NAME public.palette_id_seq
|
|
START WITH 1
|
|
INCREMENT BY 1
|
|
NO MINVALUE
|
|
NO MAXVALUE
|
|
CACHE 1
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: playlist; Type: TABLE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TABLE public.playlist (
|
|
id integer NOT NULL,
|
|
name text NOT NULL,
|
|
label text NOT NULL,
|
|
created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
updated_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
current_item_id integer,
|
|
mode public.playlist_mode_enum DEFAULT 'automatic'::public.playlist_mode_enum NOT NULL
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: playlist_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE public.playlist ALTER COLUMN id ADD GENERATED BY DEFAULT AS IDENTITY (
|
|
SEQUENCE NAME public.playlist_id_seq
|
|
START WITH 1
|
|
INCREMENT BY 1
|
|
NO MINVALUE
|
|
NO MAXVALUE
|
|
CACHE 1
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: playlist_item; Type: TABLE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TABLE public.playlist_item (
|
|
id integer NOT NULL,
|
|
playlist_id integer NOT NULL,
|
|
screen_id integer NOT NULL,
|
|
"position" integer NOT NULL,
|
|
repeat_interval integer DEFAULT 1 NOT NULL,
|
|
repeat_type public.playlist_item_repeat_type_enum DEFAULT 'none'::public.playlist_item_repeat_type_enum NOT NULL,
|
|
repeat_days integer[] DEFAULT '{}'::integer[] NOT NULL,
|
|
last_day_of_month boolean DEFAULT false NOT NULL,
|
|
start_at timestamp without time zone,
|
|
stop_at timestamp without time zone,
|
|
hidden_at timestamp without time zone,
|
|
created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
updated_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: playlist_item_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE public.playlist_item ALTER COLUMN id ADD GENERATED BY DEFAULT AS IDENTITY (
|
|
SEQUENCE NAME public.playlist_item_id_seq
|
|
START WITH 1
|
|
INCREMENT BY 1
|
|
NO MINVALUE
|
|
NO MAXVALUE
|
|
CACHE 1
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: schema_migrations; Type: TABLE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TABLE public.schema_migrations (
|
|
filename text NOT NULL
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: screen; Type: TABLE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TABLE public.screen (
|
|
id integer NOT NULL,
|
|
model_id integer NOT NULL,
|
|
label text NOT NULL,
|
|
name text NOT NULL,
|
|
image_data jsonb DEFAULT '{}'::jsonb NOT NULL,
|
|
created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
updated_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
device_id integer,
|
|
kind public.screen_kind_enum DEFAULT 'general'::public.screen_kind_enum NOT NULL,
|
|
template_id integer,
|
|
extension_id integer
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: screen_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE public.screen ALTER COLUMN id ADD GENERATED BY DEFAULT AS IDENTITY (
|
|
SEQUENCE NAME public.screen_id_seq
|
|
START WITH 1
|
|
INCREMENT BY 1
|
|
NO MINVALUE
|
|
NO MAXVALUE
|
|
CACHE 1
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: screen_template; Type: TABLE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TABLE public.screen_template (
|
|
id integer NOT NULL,
|
|
name text NOT NULL,
|
|
label text NOT NULL,
|
|
content text NOT NULL,
|
|
created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
updated_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: screen_template_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE public.screen_template ALTER COLUMN id ADD GENERATED BY DEFAULT AS IDENTITY (
|
|
SEQUENCE NAME public.screen_template_id_seq
|
|
START WITH 1
|
|
INCREMENT BY 1
|
|
NO MINVALUE
|
|
NO MAXVALUE
|
|
CACHE 1
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: user; Type: TABLE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TABLE public."user" (
|
|
id bigint NOT NULL,
|
|
status_id integer DEFAULT 1 CONSTRAINT user_status_id_not_null1 NOT NULL,
|
|
name text,
|
|
email public.citext NOT NULL,
|
|
settings jsonb DEFAULT '{}'::jsonb NOT NULL,
|
|
created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
updated_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
CONSTRAINT valid_email CHECK ((email OPERATOR(public.~) '^[^,;@ \r\n]+@[^,@; \r\n]+\.[^,@; \r\n]+$'::public.citext))
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: user_active_session_key; Type: TABLE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TABLE public.user_active_session_key (
|
|
user_id bigint NOT NULL,
|
|
session_id text NOT NULL,
|
|
created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
last_use timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: user_authentication_audit_log; Type: TABLE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TABLE public.user_authentication_audit_log (
|
|
id bigint NOT NULL,
|
|
user_id bigint NOT NULL,
|
|
at timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
message text NOT NULL,
|
|
metadata jsonb
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: user_authentication_audit_log_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE public.user_authentication_audit_log ALTER COLUMN id ADD GENERATED BY DEFAULT AS IDENTITY (
|
|
SEQUENCE NAME public.user_authentication_audit_log_id_seq
|
|
START WITH 1
|
|
INCREMENT BY 1
|
|
NO MINVALUE
|
|
NO MAXVALUE
|
|
CACHE 1
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: user_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE public."user" ALTER COLUMN id ADD GENERATED BY DEFAULT AS IDENTITY (
|
|
SEQUENCE NAME public.user_id_seq
|
|
START WITH 1
|
|
INCREMENT BY 1
|
|
NO MINVALUE
|
|
NO MAXVALUE
|
|
CACHE 1
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: user_jwt_refresh_key; Type: TABLE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TABLE public.user_jwt_refresh_key (
|
|
id bigint NOT NULL,
|
|
user_id bigint NOT NULL,
|
|
key text NOT NULL,
|
|
deadline timestamp without time zone DEFAULT ((CURRENT_TIMESTAMP)::timestamp without time zone + make_interval(days => 1)) NOT NULL
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: user_jwt_refresh_key_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE public.user_jwt_refresh_key ALTER COLUMN id ADD GENERATED BY DEFAULT AS IDENTITY (
|
|
SEQUENCE NAME public.user_jwt_refresh_key_id_seq
|
|
START WITH 1
|
|
INCREMENT BY 1
|
|
NO MINVALUE
|
|
NO MAXVALUE
|
|
CACHE 1
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: user_password_hash; Type: TABLE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TABLE public.user_password_hash (
|
|
id bigint NOT NULL,
|
|
password_hash text NOT NULL
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: user_recovery_code; Type: TABLE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TABLE public.user_recovery_code (
|
|
id bigint NOT NULL,
|
|
code text NOT NULL
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: user_remember_key; Type: TABLE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TABLE public.user_remember_key (
|
|
id bigint NOT NULL,
|
|
key text NOT NULL,
|
|
deadline timestamp without time zone DEFAULT ((CURRENT_TIMESTAMP)::timestamp without time zone + make_interval(days => 14)) NOT NULL
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: user_status; Type: TABLE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TABLE public.user_status (
|
|
id integer NOT NULL,
|
|
name text NOT NULL
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: user_status_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE public.user_status ALTER COLUMN id ADD GENERATED BY DEFAULT AS IDENTITY (
|
|
SEQUENCE NAME public.user_status_id_seq
|
|
START WITH 1
|
|
INCREMENT BY 1
|
|
NO MINVALUE
|
|
NO MAXVALUE
|
|
CACHE 1
|
|
);
|
|
|
|
|
|
--
|
|
-- Name: account account_name_key; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.account
|
|
ADD CONSTRAINT account_name_key UNIQUE (name);
|
|
|
|
|
|
--
|
|
-- Name: account account_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.account
|
|
ADD CONSTRAINT account_pkey PRIMARY KEY (id);
|
|
|
|
|
|
--
|
|
-- Name: device_log device_logs_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.device_log
|
|
ADD CONSTRAINT device_logs_pkey PRIMARY KEY (id);
|
|
|
|
|
|
--
|
|
-- Name: device_sensor device_sensor_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.device_sensor
|
|
ADD CONSTRAINT device_sensor_pkey PRIMARY KEY (id);
|
|
|
|
|
|
--
|
|
-- Name: device devices_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.device
|
|
ADD CONSTRAINT devices_pkey PRIMARY KEY (id);
|
|
|
|
|
|
--
|
|
-- Name: extension_device extension_device_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.extension_device
|
|
ADD CONSTRAINT extension_device_pkey PRIMARY KEY (id);
|
|
|
|
|
|
--
|
|
-- Name: extension_exchange extension_exchange_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.extension_exchange
|
|
ADD CONSTRAINT extension_exchange_pkey PRIMARY KEY (id);
|
|
|
|
|
|
--
|
|
-- Name: extension extension_label_key; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.extension
|
|
ADD CONSTRAINT extension_label_key UNIQUE (label);
|
|
|
|
|
|
--
|
|
-- Name: extension_model extension_model_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.extension_model
|
|
ADD CONSTRAINT extension_model_pkey PRIMARY KEY (id);
|
|
|
|
|
|
--
|
|
-- Name: extension extension_name_key; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.extension
|
|
ADD CONSTRAINT extension_name_key UNIQUE (name);
|
|
|
|
|
|
--
|
|
-- Name: extension extension_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.extension
|
|
ADD CONSTRAINT extension_pkey PRIMARY KEY (id);
|
|
|
|
|
|
--
|
|
-- Name: firmware firmwares_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.firmware
|
|
ADD CONSTRAINT firmwares_pkey PRIMARY KEY (id);
|
|
|
|
|
|
--
|
|
-- Name: firmware firmwares_version_key; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.firmware
|
|
ADD CONSTRAINT firmwares_version_key UNIQUE (version);
|
|
|
|
|
|
--
|
|
-- Name: membership membership_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.membership
|
|
ADD CONSTRAINT membership_pkey PRIMARY KEY (id);
|
|
|
|
|
|
--
|
|
-- Name: model model_label_key; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.model
|
|
ADD CONSTRAINT model_label_key UNIQUE (label);
|
|
|
|
|
|
--
|
|
-- Name: model model_name_key; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.model
|
|
ADD CONSTRAINT model_name_key UNIQUE (name);
|
|
|
|
|
|
--
|
|
-- Name: model_palette model_palette_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.model_palette
|
|
ADD CONSTRAINT model_palette_pkey PRIMARY KEY (id);
|
|
|
|
|
|
--
|
|
-- Name: model model_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.model
|
|
ADD CONSTRAINT model_pkey PRIMARY KEY (id);
|
|
|
|
|
|
--
|
|
-- Name: palette palette_name_key; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.palette
|
|
ADD CONSTRAINT palette_name_key UNIQUE (name);
|
|
|
|
|
|
--
|
|
-- Name: palette palette_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.palette
|
|
ADD CONSTRAINT palette_pkey PRIMARY KEY (id);
|
|
|
|
|
|
--
|
|
-- Name: playlist_item playlist_item_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.playlist_item
|
|
ADD CONSTRAINT playlist_item_pkey PRIMARY KEY (id);
|
|
|
|
|
|
--
|
|
-- Name: playlist playlist_label_key; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.playlist
|
|
ADD CONSTRAINT playlist_label_key UNIQUE (label);
|
|
|
|
|
|
--
|
|
-- Name: playlist playlist_name_key; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.playlist
|
|
ADD CONSTRAINT playlist_name_key UNIQUE (name);
|
|
|
|
|
|
--
|
|
-- Name: playlist playlist_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.playlist
|
|
ADD CONSTRAINT playlist_pkey PRIMARY KEY (id);
|
|
|
|
|
|
--
|
|
-- Name: schema_migrations schema_migrations_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.schema_migrations
|
|
ADD CONSTRAINT schema_migrations_pkey PRIMARY KEY (filename);
|
|
|
|
|
|
--
|
|
-- Name: screen screen_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.screen
|
|
ADD CONSTRAINT screen_pkey PRIMARY KEY (id);
|
|
|
|
|
|
--
|
|
-- Name: screen_template screen_template_label_key; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.screen_template
|
|
ADD CONSTRAINT screen_template_label_key UNIQUE (label);
|
|
|
|
|
|
--
|
|
-- Name: screen_template screen_template_name_key; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.screen_template
|
|
ADD CONSTRAINT screen_template_name_key UNIQUE (name);
|
|
|
|
|
|
--
|
|
-- Name: screen_template screen_template_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.screen_template
|
|
ADD CONSTRAINT screen_template_pkey PRIMARY KEY (id);
|
|
|
|
|
|
--
|
|
-- Name: user_active_session_key user_active_session_key_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.user_active_session_key
|
|
ADD CONSTRAINT user_active_session_key_pkey PRIMARY KEY (user_id, session_id);
|
|
|
|
|
|
--
|
|
-- Name: user_authentication_audit_log user_authentication_audit_log_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.user_authentication_audit_log
|
|
ADD CONSTRAINT user_authentication_audit_log_pkey PRIMARY KEY (id);
|
|
|
|
|
|
--
|
|
-- Name: user_jwt_refresh_key user_jwt_refresh_key_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.user_jwt_refresh_key
|
|
ADD CONSTRAINT user_jwt_refresh_key_pkey PRIMARY KEY (id);
|
|
|
|
|
|
--
|
|
-- Name: user_password_hash user_password_hash_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.user_password_hash
|
|
ADD CONSTRAINT user_password_hash_pkey PRIMARY KEY (id);
|
|
|
|
|
|
--
|
|
-- Name: user user_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public."user"
|
|
ADD CONSTRAINT user_pkey PRIMARY KEY (id);
|
|
|
|
|
|
--
|
|
-- Name: user_recovery_code user_recovery_code_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.user_recovery_code
|
|
ADD CONSTRAINT user_recovery_code_pkey PRIMARY KEY (id, code);
|
|
|
|
|
|
--
|
|
-- Name: user_remember_key user_remember_key_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.user_remember_key
|
|
ADD CONSTRAINT user_remember_key_pkey PRIMARY KEY (id);
|
|
|
|
|
|
--
|
|
-- Name: user_status user_status_name_key; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.user_status
|
|
ADD CONSTRAINT user_status_name_key UNIQUE (name);
|
|
|
|
|
|
--
|
|
-- Name: user_status user_status_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.user_status
|
|
ADD CONSTRAINT user_status_pkey PRIMARY KEY (id);
|
|
|
|
|
|
--
|
|
-- Name: account_settings_index; Type: INDEX; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE INDEX account_settings_index ON public.account USING gin (settings);
|
|
|
|
|
|
--
|
|
-- Name: audit_at_idx; Type: INDEX; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE INDEX audit_at_idx ON public.user_authentication_audit_log USING btree (at);
|
|
|
|
|
|
--
|
|
-- Name: audit_user_at_idx; Type: INDEX; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE INDEX audit_user_at_idx ON public.user_authentication_audit_log USING btree (user_id, at);
|
|
|
|
|
|
--
|
|
-- Name: device_api_key_index; Type: INDEX; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE UNIQUE INDEX device_api_key_index ON public.device USING btree (api_key) WHERE (api_key IS NOT NULL);
|
|
|
|
|
|
--
|
|
-- Name: device_log_level_index; Type: INDEX; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE INDEX device_log_level_index ON public.device_log USING btree (level);
|
|
|
|
|
|
--
|
|
-- Name: device_logs_device_id_index; Type: INDEX; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE INDEX device_logs_device_id_index ON public.device_log USING btree (device_id);
|
|
|
|
|
|
--
|
|
-- Name: device_logs_special_function_index; Type: INDEX; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE INDEX device_logs_special_function_index ON public.device_log USING btree (command);
|
|
|
|
|
|
--
|
|
-- Name: device_logs_wake_reason_index; Type: INDEX; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE INDEX device_logs_wake_reason_index ON public.device_log USING btree (wake_reason);
|
|
|
|
|
|
--
|
|
-- Name: device_logs_wifi_status_index; Type: INDEX; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE INDEX device_logs_wifi_status_index ON public.device_log USING btree (wifi_status);
|
|
|
|
|
|
--
|
|
-- Name: device_sensor_device_id_index; Type: INDEX; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE INDEX device_sensor_device_id_index ON public.device_sensor USING btree (device_id);
|
|
|
|
|
|
--
|
|
-- Name: device_sensor_kind_index; Type: INDEX; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE INDEX device_sensor_kind_index ON public.device_sensor USING btree (kind);
|
|
|
|
|
|
--
|
|
-- Name: device_sensor_source_index; Type: INDEX; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE INDEX device_sensor_source_index ON public.device_sensor USING btree (source);
|
|
|
|
|
|
--
|
|
-- Name: extension_device_extension_id_device_id_index; Type: INDEX; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE UNIQUE INDEX extension_device_extension_id_device_id_index ON public.extension_device USING btree (extension_id, device_id);
|
|
|
|
|
|
--
|
|
-- Name: extension_model_extension_id_model_id_index; Type: INDEX; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE UNIQUE INDEX extension_model_extension_id_model_id_index ON public.extension_model USING btree (extension_id, model_id);
|
|
|
|
|
|
--
|
|
-- Name: extension_name_index; Type: INDEX; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE INDEX extension_name_index ON public.extension USING btree (name);
|
|
|
|
|
|
--
|
|
-- Name: extension_unit_index; Type: INDEX; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE INDEX extension_unit_index ON public.extension USING btree (unit);
|
|
|
|
|
|
--
|
|
-- Name: firmwares_attachment_data_index; Type: INDEX; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE INDEX firmwares_attachment_data_index ON public.firmware USING gin (attachment_data);
|
|
|
|
|
|
--
|
|
-- Name: membership_account_id_index; Type: INDEX; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE INDEX membership_account_id_index ON public.membership USING btree (account_id);
|
|
|
|
|
|
--
|
|
-- Name: membership_user_id_index; Type: INDEX; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE INDEX membership_user_id_index ON public.membership USING btree (user_id);
|
|
|
|
|
|
--
|
|
-- Name: model_kind_index; Type: INDEX; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE INDEX model_kind_index ON public.model USING btree (kind);
|
|
|
|
|
|
--
|
|
-- Name: model_label_index; Type: INDEX; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE INDEX model_label_index ON public.model USING btree (label);
|
|
|
|
|
|
--
|
|
-- Name: model_name_index; Type: INDEX; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE INDEX model_name_index ON public.model USING btree (name);
|
|
|
|
|
|
--
|
|
-- Name: model_palette_model_id_palette_id_index; Type: INDEX; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE UNIQUE INDEX model_palette_model_id_palette_id_index ON public.model_palette USING btree (model_id, palette_id);
|
|
|
|
|
|
--
|
|
-- Name: palette_kind_index; Type: INDEX; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE INDEX palette_kind_index ON public.palette USING btree (kind);
|
|
|
|
|
|
--
|
|
-- Name: playlist_item_playlist_id_position_index; Type: INDEX; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE UNIQUE INDEX playlist_item_playlist_id_position_index ON public.playlist_item USING btree (playlist_id, "position");
|
|
|
|
|
|
--
|
|
-- Name: playlist_item_repeat_type_index; Type: INDEX; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE INDEX playlist_item_repeat_type_index ON public.playlist_item USING btree (repeat_type);
|
|
|
|
|
|
--
|
|
-- Name: playlist_item_start_at_index; Type: INDEX; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE INDEX playlist_item_start_at_index ON public.playlist_item USING btree (start_at);
|
|
|
|
|
|
--
|
|
-- Name: playlist_item_stop_at_index; Type: INDEX; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE INDEX playlist_item_stop_at_index ON public.playlist_item USING btree (stop_at);
|
|
|
|
|
|
--
|
|
-- Name: playlist_mode_index; Type: INDEX; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE INDEX playlist_mode_index ON public.playlist USING btree (mode);
|
|
|
|
|
|
--
|
|
-- Name: screen_image_data_index; Type: INDEX; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE INDEX screen_image_data_index ON public.screen USING gin (image_data);
|
|
|
|
|
|
--
|
|
-- Name: screen_model_id_name_index; Type: INDEX; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE UNIQUE INDEX screen_model_id_name_index ON public.screen USING btree (model_id, name);
|
|
|
|
|
|
--
|
|
-- Name: screen_template_name_index; Type: INDEX; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE INDEX screen_template_name_index ON public.screen_template USING btree (name);
|
|
|
|
|
|
--
|
|
-- Name: user_email_index; Type: INDEX; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE UNIQUE INDEX user_email_index ON public."user" USING btree (email) WHERE (status_id = ANY (ARRAY[1, 2]));
|
|
|
|
|
|
--
|
|
-- Name: user_jwt_refresh_key_user_id_idx; Type: INDEX; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE INDEX user_jwt_refresh_key_user_id_idx ON public.user_jwt_refresh_key USING btree (user_id);
|
|
|
|
|
|
--
|
|
-- Name: user_settings_index; Type: INDEX; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE INDEX user_settings_index ON public."user" USING gin (settings);
|
|
|
|
|
|
--
|
|
-- Name: device_log device_logs_device_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.device_log
|
|
ADD CONSTRAINT device_logs_device_id_fkey FOREIGN KEY (device_id) REFERENCES public.device(id) ON UPDATE CASCADE ON DELETE CASCADE;
|
|
|
|
|
|
--
|
|
-- Name: device_sensor device_sensor_device_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.device_sensor
|
|
ADD CONSTRAINT device_sensor_device_id_fkey FOREIGN KEY (device_id) REFERENCES public.device(id) ON UPDATE CASCADE ON DELETE CASCADE;
|
|
|
|
|
|
--
|
|
-- Name: device devices_model_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.device
|
|
ADD CONSTRAINT devices_model_id_fkey FOREIGN KEY (model_id) REFERENCES public.model(id) ON UPDATE CASCADE ON DELETE CASCADE;
|
|
|
|
|
|
--
|
|
-- Name: device devices_playlist_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.device
|
|
ADD CONSTRAINT devices_playlist_id_fkey FOREIGN KEY (playlist_id) REFERENCES public.playlist(id) ON UPDATE CASCADE ON DELETE SET NULL;
|
|
|
|
|
|
--
|
|
-- Name: extension_device extension_device_device_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.extension_device
|
|
ADD CONSTRAINT extension_device_device_id_fkey FOREIGN KEY (device_id) REFERENCES public.device(id) ON UPDATE CASCADE ON DELETE CASCADE;
|
|
|
|
|
|
--
|
|
-- Name: extension_device extension_device_extension_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.extension_device
|
|
ADD CONSTRAINT extension_device_extension_id_fkey FOREIGN KEY (extension_id) REFERENCES public.extension(id) ON UPDATE CASCADE ON DELETE CASCADE;
|
|
|
|
|
|
--
|
|
-- Name: extension_exchange extension_exchange_extension_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.extension_exchange
|
|
ADD CONSTRAINT extension_exchange_extension_id_fkey FOREIGN KEY (extension_id) REFERENCES public.extension(id) ON UPDATE CASCADE ON DELETE CASCADE;
|
|
|
|
|
|
--
|
|
-- Name: extension_model extension_model_extension_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.extension_model
|
|
ADD CONSTRAINT extension_model_extension_id_fkey FOREIGN KEY (extension_id) REFERENCES public.extension(id) ON UPDATE CASCADE ON DELETE CASCADE;
|
|
|
|
|
|
--
|
|
-- Name: extension_model extension_model_model_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.extension_model
|
|
ADD CONSTRAINT extension_model_model_id_fkey FOREIGN KEY (model_id) REFERENCES public.model(id) ON UPDATE CASCADE ON DELETE CASCADE;
|
|
|
|
|
|
--
|
|
-- Name: membership membership_account_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.membership
|
|
ADD CONSTRAINT membership_account_id_fkey FOREIGN KEY (account_id) REFERENCES public.account(id) ON UPDATE CASCADE ON DELETE CASCADE;
|
|
|
|
|
|
--
|
|
-- Name: membership membership_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.membership
|
|
ADD CONSTRAINT membership_user_id_fkey FOREIGN KEY (user_id) REFERENCES public."user"(id) ON UPDATE CASCADE ON DELETE CASCADE;
|
|
|
|
|
|
--
|
|
-- Name: model model_default_palette_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.model
|
|
ADD CONSTRAINT model_default_palette_id_fkey FOREIGN KEY (default_palette_id) REFERENCES public.palette(id) ON UPDATE CASCADE ON DELETE SET NULL;
|
|
|
|
|
|
--
|
|
-- Name: model_palette model_palette_model_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.model_palette
|
|
ADD CONSTRAINT model_palette_model_id_fkey FOREIGN KEY (model_id) REFERENCES public.model(id) ON UPDATE CASCADE ON DELETE CASCADE;
|
|
|
|
|
|
--
|
|
-- Name: model_palette model_palette_palette_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.model_palette
|
|
ADD CONSTRAINT model_palette_palette_id_fkey FOREIGN KEY (palette_id) REFERENCES public.palette(id) ON UPDATE CASCADE ON DELETE CASCADE;
|
|
|
|
|
|
--
|
|
-- Name: playlist playlist_current_item_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.playlist
|
|
ADD CONSTRAINT playlist_current_item_id_fkey FOREIGN KEY (current_item_id) REFERENCES public.playlist_item(id) ON UPDATE CASCADE ON DELETE SET NULL;
|
|
|
|
|
|
--
|
|
-- Name: playlist_item playlist_item_playlist_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.playlist_item
|
|
ADD CONSTRAINT playlist_item_playlist_id_fkey FOREIGN KEY (playlist_id) REFERENCES public.playlist(id) ON UPDATE CASCADE ON DELETE CASCADE;
|
|
|
|
|
|
--
|
|
-- Name: playlist_item playlist_item_screen_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.playlist_item
|
|
ADD CONSTRAINT playlist_item_screen_id_fkey FOREIGN KEY (screen_id) REFERENCES public.screen(id) ON UPDATE CASCADE ON DELETE CASCADE;
|
|
|
|
|
|
--
|
|
-- Name: screen screen_device_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.screen
|
|
ADD CONSTRAINT screen_device_id_fkey FOREIGN KEY (device_id) REFERENCES public.device(id) ON UPDATE CASCADE ON DELETE SET NULL;
|
|
|
|
|
|
--
|
|
-- Name: screen screen_extension_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.screen
|
|
ADD CONSTRAINT screen_extension_id_fkey FOREIGN KEY (extension_id) REFERENCES public.extension(id) ON UPDATE CASCADE ON DELETE SET NULL;
|
|
|
|
|
|
--
|
|
-- Name: screen screen_model_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.screen
|
|
ADD CONSTRAINT screen_model_id_fkey FOREIGN KEY (model_id) REFERENCES public.model(id) ON UPDATE CASCADE ON DELETE CASCADE;
|
|
|
|
|
|
--
|
|
-- Name: screen screen_template_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.screen
|
|
ADD CONSTRAINT screen_template_id_fkey FOREIGN KEY (template_id) REFERENCES public.screen_template(id) ON UPDATE CASCADE ON DELETE SET NULL;
|
|
|
|
|
|
--
|
|
-- Name: user_active_session_key user_active_session_key_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.user_active_session_key
|
|
ADD CONSTRAINT user_active_session_key_user_id_fkey FOREIGN KEY (user_id) REFERENCES public."user"(id);
|
|
|
|
|
|
--
|
|
-- Name: user_authentication_audit_log user_authentication_audit_log_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.user_authentication_audit_log
|
|
ADD CONSTRAINT user_authentication_audit_log_user_id_fkey FOREIGN KEY (user_id) REFERENCES public."user"(id);
|
|
|
|
|
|
--
|
|
-- Name: user_jwt_refresh_key user_jwt_refresh_key_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.user_jwt_refresh_key
|
|
ADD CONSTRAINT user_jwt_refresh_key_user_id_fkey FOREIGN KEY (user_id) REFERENCES public."user"(id);
|
|
|
|
|
|
--
|
|
-- Name: user_password_hash user_password_hash_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.user_password_hash
|
|
ADD CONSTRAINT user_password_hash_id_fkey FOREIGN KEY (id) REFERENCES public."user"(id);
|
|
|
|
|
|
--
|
|
-- Name: user_recovery_code user_recovery_code_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.user_recovery_code
|
|
ADD CONSTRAINT user_recovery_code_id_fkey FOREIGN KEY (id) REFERENCES public."user"(id);
|
|
|
|
|
|
--
|
|
-- Name: user_remember_key user_remember_key_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.user_remember_key
|
|
ADD CONSTRAINT user_remember_key_id_fkey FOREIGN KEY (id) REFERENCES public."user"(id);
|
|
|
|
|
|
--
|
|
-- Name: user user_status_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public."user"
|
|
ADD CONSTRAINT user_status_id_fkey FOREIGN KEY (status_id) REFERENCES public.user_status(id);
|
|
|
|
|
|
--
|
|
-- PostgreSQL database dump complete
|
|
--
|
|
|
|
|
|
SET search_path TO "$user", public;
|
|
|
|
INSERT INTO schema_migrations (filename) VALUES
|
|
('20250305150912_create_devices.rb'),
|
|
('20250324153748_create_device_logs.rb'),
|
|
('20250401150503_add_device_proxy_column.rb'),
|
|
('20250408143435_add_device_firmware_update_column.rb'),
|
|
('20250423143027_add_device_log_max_alloc_size.rb'),
|
|
('20250429114320_remove_device_setup_at_column.rb'),
|
|
('20250429115049_change_device_column_text_types.rb'),
|
|
('20250602132300_add_device_sleep_period.rb'),
|
|
('20250609143532_add_firmwares.rb'),
|
|
('20250624130848_add_model.rb'),
|
|
('20250625103300_remove_model_timestamps.rb'),
|
|
('20250625123433_add_playlist.rb'),
|
|
('20250625123558_add_device_and_model_playlist_columns.rb'),
|
|
('20250625123645_change_device_sleep_end_column.rb'),
|
|
('20250625123721_add_screen.rb'),
|
|
('20250625123745_add_playlist_item.rb'),
|
|
('20250723140212_add_playlist_current_item_foreign_key.rb'),
|
|
('20250723140455_add_model_detail_columns.rb'),
|
|
('20250730094230_change_model_scale_factor_to_float.rb'),
|
|
('20250813132657_add_model_timestamps.rb'),
|
|
('20250821094444_add_model_kind_column.rb'),
|
|
('20250904100039_drop_model_scale_factor.rb'),
|
|
('20250908152041_rename_devices.rb'),
|
|
('20250908153411_rename_firmwares.rb'),
|
|
('20250908153842_rename_device_logs.rb'),
|
|
('20250909142527_alter_model_kinds.rb'),
|
|
('20250916111723_add_citext_extension.rb'),
|
|
('20250916111947_create_account.rb'),
|
|
('20250916112018_create_rodauth_user.rb'),
|
|
('20250916112035_create_rodauth_user_password_hash.rb'),
|
|
('20250916112116_create_membership.rb'),
|
|
('20251111140836_alter_screen_indexes.rb'),
|
|
('20251111145213_create_extension.rb'),
|
|
('20251111145306_create_extension_model.rb'),
|
|
('20251124163836_alter_model_kind_column.rb'),
|
|
('20251125115051_add_model_scale_factor_column.rb'),
|
|
('20251201105349_alter_model_firmware_columns.rb'),
|
|
('20251211152911_drop_model_published_at_column.rb'),
|
|
('20251215154654_add_playlist_mode_enum.rb'),
|
|
('20260106144016_alter_firmware_kind.rb'),
|
|
('20260126141642_alter_device_table_model_id_as_non_null.rb'),
|
|
('20260209163817_add_model_palette_ids_and_css_columns.rb'),
|
|
('20260217081447_create_device_sensor.rb'),
|
|
('20260219103153_create_extension_device.rb'),
|
|
('20260318132059_rename_model_palette_ids_column.rb'),
|
|
('20260318132419_add_palette.rb'),
|
|
('20260330115025_add_extension_mode_column.rb'),
|
|
('20260330145138_alter_device_battery_columns.rb'),
|
|
('20260331102522_add_device_wake_reason_column.rb'),
|
|
('20260401162632_alter_model_width_and_height_defaults.rb'),
|
|
('20260406095627_add_extension_exchange.rb'),
|
|
('20260420112319_add_model_palette_id.rb'),
|
|
('20260420112332_create_model_palette.rb'),
|
|
('20260421140616_remove_model_palette_names_column.rb'),
|
|
('20260508102145_add_device_synced_at_column.rb'),
|
|
('20260512100558_remove_device_proxy_column.rb'),
|
|
('20260512102800_remove_extension_poll_columns.rb'),
|
|
('20260512110409_rename_extension_body_column.rb'),
|
|
('20260601143521_add_device_columns.rb'),
|
|
('20260602112926_add_device_profile_and_compatibility_columns.rb'),
|
|
('20260608161124_add_device_wifi_band_column.rb'),
|
|
('20260609142235_add_screen_device_id_and_kind_columns.rb'),
|
|
('20260610103052_remove_device_api_key_and_friendly_id_columns.rb'),
|
|
('20260615094348_create_screen_template.rb'),
|
|
('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'),
|
|
('20260721160742_rename_device_log_function_columan_as_command.rb'),
|
|
('20260805142625_alter_screen_device_id_constraint.rb'),
|
|
('20260810100653_add_screen_extension_id_column.rb'),
|
|
('20260810102551_drop_screen_device_id_and_kind_index.rb');
|