Added membership table migration

Necessary to associate accounts with users.

Milestone: minor
This commit is contained in:
Brooke Kuhlmann
2025-09-29 11:11:35 -06:00
parent fad0dd6361
commit cb07f8990d
2 changed files with 95 additions and 3 deletions
@@ -0,0 +1,26 @@
# frozen_string_literal: true
ROM::SQL.migration do
change do
create_table :membership do
primary_key :id
foreign_key :account_id,
:account,
index: true,
null: false,
on_delete: :cascade,
on_update: :cascade
foreign_key :user_id,
:user,
index: true,
null: false,
on_delete: :cascade,
on_update: :cascade
column :created_at, :timestamp, null: false, default: Sequel::CURRENT_TIMESTAMP
column :updated_at, :timestamp, null: false, default: Sequel::CURRENT_TIMESTAMP
end
end
end
+69 -3
View File
@@ -2,7 +2,7 @@
-- PostgreSQL database dump
--
\restrict aXuLSArImOqffdidwihp5xHlzc8Q3ailMXtQZfVyAysvnpVWDPAQsLm75Ltvod4
\restrict YMOuZzdXNX9KmsJiPy018G8JeZqM9woMUF8S7bMNuf66j7qCdhQum6EVxFlMutt
-- Dumped from database version 18.0
-- Dumped by pg_dump version 18.0
@@ -304,6 +304,33 @@ ALTER TABLE public.firmware ALTER COLUMN id ADD GENERATED BY DEFAULT AS IDENTITY
);
--
-- 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: -
--
@@ -641,6 +668,14 @@ 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: -
--
@@ -857,6 +892,20 @@ CREATE INDEX device_logs_wifi_status_index ON public.device_log USING btree (wif
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: -
--
@@ -965,6 +1014,22 @@ 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: 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: playlist playlist_current_item_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: -
--
@@ -1057,7 +1122,7 @@ ALTER TABLE ONLY public."user"
-- PostgreSQL database dump complete
--
\unrestrict aXuLSArImOqffdidwihp5xHlzc8Q3ailMXtQZfVyAysvnpVWDPAQsLm75Ltvod4
\unrestrict YMOuZzdXNX9KmsJiPy018G8JeZqM9woMUF8S7bMNuf66j7qCdhQum6EVxFlMutt
SET search_path TO "$user", public;
@@ -1091,4 +1156,5 @@ INSERT INTO schema_migrations (filename) VALUES
('20250916111723_add_citext_extension.rb'),
('20250916111947_create_account.rb'),
('20250916112018_create_rodauth_user.rb'),
('20250916112035_create_rodauth_user_password_hash.rb');
('20250916112035_create_rodauth_user_password_hash.rb'),
('20250916112116_create_membership.rb');