Files
pgsql-jellyfin/sql/schema_init/create_database_schema.sql.v3
wjones b2d7513cf2 updating sql file for database creation
updating sql file for database creation
2026-05-11 14:45:48 -04:00

2163 lines
67 KiB
Plaintext

--
-- PostgreSQL database dump
--
\restrict Vwcqwiq0T7Wa2mK8KvZhGZRaSeFcgOrgunEbjWSCbLeRLSwJLeXqBprmQroWe9O
-- Dumped from database version 18.3 (Ubuntu 18.3-1.pgdg25.10+1)
-- Dumped by pg_dump version 18.3 (Ubuntu 18.3-1.pgdg25.10+1)
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: activitylog; Type: SCHEMA; Schema: -; Owner: jellyfin
--
CREATE SCHEMA activitylog;
ALTER SCHEMA activitylog OWNER TO jellyfin;
--
-- Name: authentication; Type: SCHEMA; Schema: -; Owner: jellyfin
--
CREATE SCHEMA authentication;
ALTER SCHEMA authentication OWNER TO jellyfin;
--
-- Name: displaypreferences; Type: SCHEMA; Schema: -; Owner: jellyfin
--
CREATE SCHEMA displaypreferences;
ALTER SCHEMA displaypreferences OWNER TO jellyfin;
--
-- Name: library; Type: SCHEMA; Schema: -; Owner: jellyfin
--
CREATE SCHEMA library;
ALTER SCHEMA library OWNER TO jellyfin;
--
-- Name: pg_repack; Type: EXTENSION; Schema: -; Owner: -
--
CREATE EXTENSION IF NOT EXISTS pg_repack WITH SCHEMA public;
--
-- Name: EXTENSION pg_repack; Type: COMMENT; Schema: -; Owner:
--
COMMENT ON EXTENSION pg_repack IS 'Reorganize tables in PostgreSQL databases with minimal locks';
--
-- Name: users; Type: SCHEMA; Schema: -; Owner: jellyfin
--
CREATE SCHEMA users;
ALTER SCHEMA users OWNER TO jellyfin;
--
-- Name: pg_stat_statements; Type: EXTENSION; Schema: -; Owner: -
--
CREATE EXTENSION IF NOT EXISTS pg_stat_statements WITH SCHEMA public;
--
-- Name: EXTENSION pg_stat_statements; Type: COMMENT; Schema: -; Owner:
--
COMMENT ON EXTENSION pg_stat_statements IS 'track planning and execution statistics of all SQL statements executed';
SET default_tablespace = '';
SET default_table_access_method = heap;
--
-- Name: activity_logs; Type: TABLE; Schema: activitylog; Owner: jellyfin
--
CREATE TABLE activitylog.activity_logs (
id integer CONSTRAINT "ActivityLogs_Id_not_null" NOT NULL,
name character varying(512) CONSTRAINT "ActivityLogs_Name_not_null" NOT NULL,
overview character varying(512),
short_overview character varying(512),
type character varying(256) CONSTRAINT "ActivityLogs_Type_not_null" NOT NULL,
user_id uuid CONSTRAINT "ActivityLogs_UserId_not_null" NOT NULL,
item_id character varying(256),
date_created timestamp with time zone CONSTRAINT "ActivityLogs_DateCreated_not_null" NOT NULL,
log_severity integer CONSTRAINT "ActivityLogs_LogSeverity_not_null" NOT NULL,
row_version bigint CONSTRAINT "ActivityLogs_RowVersion_not_null" NOT NULL
);
ALTER TABLE activitylog.activity_logs OWNER TO jellyfin;
--
-- Name: ActivityLogs_Id_seq; Type: SEQUENCE; Schema: activitylog; Owner: jellyfin
--
ALTER TABLE activitylog.activity_logs ALTER COLUMN id ADD GENERATED BY DEFAULT AS IDENTITY (
SEQUENCE NAME activitylog."ActivityLogs_Id_seq"
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1
);
--
-- Name: api_keys; Type: TABLE; Schema: authentication; Owner: jellyfin
--
CREATE TABLE authentication.api_keys (
id integer CONSTRAINT "ApiKeys_Id_not_null" NOT NULL,
date_created timestamp with time zone CONSTRAINT "ApiKeys_DateCreated_not_null" NOT NULL,
date_last_activity timestamp with time zone CONSTRAINT "ApiKeys_DateLastActivity_not_null" NOT NULL,
name character varying(64) CONSTRAINT "ApiKeys_Name_not_null" NOT NULL,
access_token text CONSTRAINT "ApiKeys_AccessToken_not_null" NOT NULL
);
ALTER TABLE authentication.api_keys OWNER TO jellyfin;
--
-- Name: ApiKeys_Id_seq; Type: SEQUENCE; Schema: authentication; Owner: jellyfin
--
ALTER TABLE authentication.api_keys ALTER COLUMN id ADD GENERATED BY DEFAULT AS IDENTITY (
SEQUENCE NAME authentication."ApiKeys_Id_seq"
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1
);
--
-- Name: device_options; Type: TABLE; Schema: authentication; Owner: jellyfin
--
CREATE TABLE authentication.device_options (
id integer CONSTRAINT "DeviceOptions_Id_not_null" NOT NULL,
device_id text CONSTRAINT "DeviceOptions_DeviceId_not_null" NOT NULL,
custom_name text
);
ALTER TABLE authentication.device_options OWNER TO jellyfin;
--
-- Name: DeviceOptions_Id_seq; Type: SEQUENCE; Schema: authentication; Owner: jellyfin
--
ALTER TABLE authentication.device_options ALTER COLUMN id ADD GENERATED BY DEFAULT AS IDENTITY (
SEQUENCE NAME authentication."DeviceOptions_Id_seq"
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1
);
--
-- Name: devices; Type: TABLE; Schema: authentication; Owner: jellyfin
--
CREATE TABLE authentication.devices (
id integer CONSTRAINT "Devices_Id_not_null" NOT NULL,
user_id uuid CONSTRAINT "Devices_UserId_not_null" NOT NULL,
access_token text CONSTRAINT "Devices_AccessToken_not_null" NOT NULL,
app_name character varying(64) CONSTRAINT "Devices_AppName_not_null" NOT NULL,
app_version character varying(32) CONSTRAINT "Devices_AppVersion_not_null" NOT NULL,
device_name character varying(64) CONSTRAINT "Devices_DeviceName_not_null" NOT NULL,
device_id character varying(256) CONSTRAINT "Devices_DeviceId_not_null" NOT NULL,
is_active boolean CONSTRAINT "Devices_IsActive_not_null" NOT NULL,
date_created timestamp with time zone CONSTRAINT "Devices_DateCreated_not_null" NOT NULL,
date_modified timestamp with time zone CONSTRAINT "Devices_DateModified_not_null" NOT NULL,
date_last_activity timestamp with time zone CONSTRAINT "Devices_DateLastActivity_not_null" NOT NULL
);
ALTER TABLE authentication.devices OWNER TO jellyfin;
--
-- Name: Devices_Id_seq; Type: SEQUENCE; Schema: authentication; Owner: jellyfin
--
ALTER TABLE authentication.devices ALTER COLUMN id ADD GENERATED BY DEFAULT AS IDENTITY (
SEQUENCE NAME authentication."Devices_Id_seq"
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1
);
--
-- Name: custom_item_display_preferences; Type: TABLE; Schema: displaypreferences; Owner: jellyfin
--
CREATE TABLE displaypreferences.custom_item_display_preferences (
id integer CONSTRAINT "CustomItemDisplayPreferences_Id_not_null" NOT NULL,
user_id uuid CONSTRAINT "CustomItemDisplayPreferences_UserId_not_null" NOT NULL,
item_id uuid CONSTRAINT "CustomItemDisplayPreferences_ItemId_not_null" NOT NULL,
client character varying(32) CONSTRAINT "CustomItemDisplayPreferences_Client_not_null" NOT NULL,
key text CONSTRAINT "CustomItemDisplayPreferences_Key_not_null" NOT NULL,
value text
);
ALTER TABLE displaypreferences.custom_item_display_preferences OWNER TO jellyfin;
--
-- Name: CustomItemDisplayPreferences_Id_seq; Type: SEQUENCE; Schema: displaypreferences; Owner: jellyfin
--
ALTER TABLE displaypreferences.custom_item_display_preferences ALTER COLUMN id ADD GENERATED BY DEFAULT AS IDENTITY (
SEQUENCE NAME displaypreferences."CustomItemDisplayPreferences_Id_seq"
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1
);
--
-- Name: display_preferences; Type: TABLE; Schema: displaypreferences; Owner: jellyfin
--
CREATE TABLE displaypreferences.display_preferences (
id integer CONSTRAINT "DisplayPreferences_Id_not_null" NOT NULL,
user_id uuid CONSTRAINT "DisplayPreferences_UserId_not_null" NOT NULL,
item_id uuid CONSTRAINT "DisplayPreferences_ItemId_not_null" NOT NULL,
client character varying(32) CONSTRAINT "DisplayPreferences_Client_not_null" NOT NULL,
show_sidebar boolean CONSTRAINT "DisplayPreferences_ShowSidebar_not_null" NOT NULL,
show_backdrop boolean CONSTRAINT "DisplayPreferences_ShowBackdrop_not_null" NOT NULL,
scroll_direction integer CONSTRAINT "DisplayPreferences_ScrollDirection_not_null" NOT NULL,
index_by integer,
skip_forward_length integer CONSTRAINT "DisplayPreferences_SkipForwardLength_not_null" NOT NULL,
skip_backward_length integer CONSTRAINT "DisplayPreferences_SkipBackwardLength_not_null" NOT NULL,
chromecast_version integer CONSTRAINT "DisplayPreferences_ChromecastVersion_not_null" NOT NULL,
enable_next_video_info_overlay boolean CONSTRAINT "DisplayPreferences_EnableNextVideoInfoOverlay_not_null" NOT NULL,
dashboard_theme character varying(32),
tv_home character varying(32)
);
ALTER TABLE displaypreferences.display_preferences OWNER TO jellyfin;
--
-- Name: DisplayPreferences_Id_seq; Type: SEQUENCE; Schema: displaypreferences; Owner: jellyfin
--
ALTER TABLE displaypreferences.display_preferences ALTER COLUMN id ADD GENERATED BY DEFAULT AS IDENTITY (
SEQUENCE NAME displaypreferences."DisplayPreferences_Id_seq"
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1
);
--
-- Name: home_sections; Type: TABLE; Schema: displaypreferences; Owner: jellyfin
--
CREATE TABLE displaypreferences.home_sections (
id integer CONSTRAINT "HomeSection_Id_not_null" NOT NULL,
display_preferences_id integer CONSTRAINT "HomeSection_DisplayPreferencesId_not_null" NOT NULL,
"order" integer CONSTRAINT "HomeSection_Order_not_null" NOT NULL,
type integer CONSTRAINT "HomeSection_Type_not_null" NOT NULL
);
ALTER TABLE displaypreferences.home_sections OWNER TO jellyfin;
--
-- Name: HomeSection_Id_seq; Type: SEQUENCE; Schema: displaypreferences; Owner: jellyfin
--
ALTER TABLE displaypreferences.home_sections ALTER COLUMN id ADD GENERATED BY DEFAULT AS IDENTITY (
SEQUENCE NAME displaypreferences."HomeSection_Id_seq"
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1
);
--
-- Name: item_display_preferences; Type: TABLE; Schema: displaypreferences; Owner: jellyfin
--
CREATE TABLE displaypreferences.item_display_preferences (
id integer CONSTRAINT "ItemDisplayPreferences_Id_not_null" NOT NULL,
user_id uuid CONSTRAINT "ItemDisplayPreferences_UserId_not_null" NOT NULL,
item_id uuid CONSTRAINT "ItemDisplayPreferences_ItemId_not_null" NOT NULL,
client character varying(32) CONSTRAINT "ItemDisplayPreferences_Client_not_null" NOT NULL,
view_type integer CONSTRAINT "ItemDisplayPreferences_ViewType_not_null" NOT NULL,
remember_indexing boolean CONSTRAINT "ItemDisplayPreferences_RememberIndexing_not_null" NOT NULL,
index_by integer,
remember_sorting boolean CONSTRAINT "ItemDisplayPreferences_RememberSorting_not_null" NOT NULL,
sort_by character varying(64) CONSTRAINT "ItemDisplayPreferences_SortBy_not_null" NOT NULL,
sort_order integer CONSTRAINT "ItemDisplayPreferences_SortOrder_not_null" NOT NULL
);
ALTER TABLE displaypreferences.item_display_preferences OWNER TO jellyfin;
--
-- Name: ItemDisplayPreferences_Id_seq; Type: SEQUENCE; Schema: displaypreferences; Owner: jellyfin
--
ALTER TABLE displaypreferences.item_display_preferences ALTER COLUMN id ADD GENERATED BY DEFAULT AS IDENTITY (
SEQUENCE NAME displaypreferences."ItemDisplayPreferences_Id_seq"
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1
);
--
-- Name: image_infos; Type: TABLE; Schema: library; Owner: jellyfin
--
CREATE TABLE library.image_infos (
id integer CONSTRAINT "ImageInfos_Id_not_null" NOT NULL,
user_id uuid,
path character varying(512) CONSTRAINT "ImageInfos_Path_not_null" NOT NULL,
last_modified timestamp with time zone CONSTRAINT "ImageInfos_LastModified_not_null" NOT NULL
);
ALTER TABLE library.image_infos OWNER TO jellyfin;
--
-- Name: ImageInfos_Id_seq; Type: SEQUENCE; Schema: library; Owner: jellyfin
--
ALTER TABLE library.image_infos ALTER COLUMN id ADD GENERATED BY DEFAULT AS IDENTITY (
SEQUENCE NAME library."ImageInfos_Id_seq"
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1
);
--
-- Name: ancestor_ids; Type: TABLE; Schema: library; Owner: jellyfin
--
CREATE TABLE library.ancestor_ids (
parent_item_id uuid CONSTRAINT "AncestorIds_ParentItemId_not_null" NOT NULL,
item_id uuid CONSTRAINT "AncestorIds_ItemId_not_null" NOT NULL
);
ALTER TABLE library.ancestor_ids OWNER TO jellyfin;
--
-- Name: attachment_stream_infos; Type: TABLE; Schema: library; Owner: jellyfin
--
CREATE TABLE library.attachment_stream_infos (
item_id uuid CONSTRAINT "AttachmentStreamInfos_ItemId_not_null" NOT NULL,
index integer CONSTRAINT "AttachmentStreamInfos_Index_not_null" NOT NULL,
codec text,
codec_tag text,
comment text,
filename text,
mime_type text
);
ALTER TABLE library.attachment_stream_infos OWNER TO jellyfin;
--
-- Name: audio_stream_details; Type: TABLE; Schema: library; Owner: postgres
--
CREATE TABLE library.audio_stream_details (
item_id uuid CONSTRAINT "AudioStreamDetails_ItemId_not_null" NOT NULL,
stream_index integer CONSTRAINT "AudioStreamDetails_StreamIndex_not_null" NOT NULL,
channel_layout text,
channels integer,
sample_rate integer,
is_hearing_impaired boolean
);
ALTER TABLE library.audio_stream_details OWNER TO postgres;
--
-- Name: base_item_audio_extras; Type: TABLE; Schema: library; Owner: postgres
--
CREATE TABLE library.base_item_audio_extras (
item_id uuid CONSTRAINT "BaseItemAudioExtras_ItemId_not_null" NOT NULL,
album text,
artists text,
album_artists text,
lufs real,
normalization_gain real
);
ALTER TABLE library.base_item_audio_extras OWNER TO postgres;
--
-- Name: base_item_image_infos; Type: TABLE; Schema: library; Owner: jellyfin
--
CREATE TABLE library.base_item_image_infos (
id uuid CONSTRAINT "BaseItemImageInfos_Id_not_null" NOT NULL,
path text CONSTRAINT "BaseItemImageInfos_Path_not_null" NOT NULL,
date_modified timestamp with time zone,
image_type integer CONSTRAINT "BaseItemImageInfos_ImageType_not_null" NOT NULL,
width integer CONSTRAINT "BaseItemImageInfos_Width_not_null" NOT NULL,
height integer CONSTRAINT "BaseItemImageInfos_Height_not_null" NOT NULL,
blurhash bytea,
item_id uuid CONSTRAINT "BaseItemImageInfos_ItemId_not_null" NOT NULL
);
ALTER TABLE library.base_item_image_infos OWNER TO jellyfin;
--
-- Name: base_item_live_tv_extras; Type: TABLE; Schema: library; Owner: postgres
--
CREATE TABLE library.base_item_live_tv_extras (
item_id uuid CONSTRAINT "BaseItemLiveTvExtras_ItemId_not_null" NOT NULL,
start_date timestamp with time zone,
end_date timestamp with time zone,
episode_title text,
show_id text,
external_series_id text,
external_service_id text,
audio integer
);
ALTER TABLE library.base_item_live_tv_extras OWNER TO postgres;
--
-- Name: base_item_metadata_fields; Type: TABLE; Schema: library; Owner: jellyfin
--
CREATE TABLE library.base_item_metadata_fields (
id integer CONSTRAINT "BaseItemMetadataFields_Id_not_null" NOT NULL,
item_id uuid CONSTRAINT "BaseItemMetadataFields_ItemId_not_null" NOT NULL
);
ALTER TABLE library.base_item_metadata_fields OWNER TO jellyfin;
--
-- Name: base_item_providers; Type: TABLE; Schema: library; Owner: jellyfin
--
CREATE TABLE library.base_item_providers (
item_id uuid CONSTRAINT "BaseItemProviders_ItemId_not_null" NOT NULL,
provider_id text CONSTRAINT "BaseItemProviders_ProviderId_not_null" NOT NULL,
provider_value text CONSTRAINT "BaseItemProviders_ProviderValue_not_null" NOT NULL
);
ALTER TABLE library.base_item_providers OWNER TO jellyfin;
--
-- Name: base_item_trailer_types; Type: TABLE; Schema: library; Owner: jellyfin
--
CREATE TABLE library.base_item_trailer_types (
id integer CONSTRAINT "BaseItemTrailerTypes_Id_not_null" NOT NULL,
item_id uuid CONSTRAINT "BaseItemTrailerTypes_ItemId_not_null" NOT NULL
);
ALTER TABLE library.base_item_trailer_types OWNER TO jellyfin;
--
-- Name: base_item_tv_extras; Type: TABLE; Schema: library; Owner: postgres
--
CREATE TABLE library.base_item_tv_extras (
item_id uuid CONSTRAINT "BaseItemTvExtras_ItemId_not_null" NOT NULL,
series_id uuid,
season_id uuid,
series_name text,
season_name text,
series_presentation_unique_key text
);
ALTER TABLE library.base_item_tv_extras OWNER TO postgres;
--
-- Name: base_items; Type: TABLE; Schema: library; Owner: jellyfin
--
CREATE TABLE library.base_items (
id uuid CONSTRAINT "BaseItems_Id_not_null" NOT NULL,
type text CONSTRAINT "BaseItems_Type_not_null" NOT NULL,
data text,
path text,
channel_id uuid,
is_movie boolean CONSTRAINT "BaseItems_IsMovie_not_null" NOT NULL,
community_rating real,
custom_rating text,
index_number integer,
is_locked boolean CONSTRAINT "BaseItems_IsLocked_not_null" NOT NULL,
name text,
official_rating text,
media_type text,
overview text,
parent_index_number integer,
premiere_date timestamp with time zone,
production_year integer,
genres text,
sort_name text,
forced_sort_name text,
run_time_ticks bigint,
date_created timestamp with time zone,
date_modified timestamp with time zone,
is_series boolean CONSTRAINT "BaseItems_IsSeries_not_null" NOT NULL,
is_repeat boolean CONSTRAINT "BaseItems_IsRepeat_not_null" NOT NULL,
preferred_metadata_language text,
preferred_metadata_country_code text,
date_last_refreshed timestamp with time zone,
date_last_saved timestamp with time zone,
is_in_mixed_folder boolean CONSTRAINT "BaseItems_IsInMixedFolder_not_null" NOT NULL,
studios text,
tags text,
is_folder boolean CONSTRAINT "BaseItems_IsFolder_not_null" NOT NULL,
inherited_parental_rating_value integer,
inherited_parental_rating_sub_value integer,
unrated_type text,
critic_rating real,
clean_name text,
presentation_unique_key text,
original_title text,
primary_version_id text,
date_last_media_added timestamp with time zone,
is_virtual_item boolean CONSTRAINT "BaseItems_IsVirtualItem_not_null" NOT NULL,
tagline text,
production_locations text,
extra_ids text,
total_bitrate integer,
extra_type integer,
external_id text,
owner_id text,
width integer,
height integer,
size bigint,
parent_id uuid,
top_parent_id uuid
);
ALTER TABLE library.base_items OWNER TO jellyfin;
--
-- Name: base_items_v; Type: VIEW; Schema: library; Owner: postgres
--
CREATE VIEW library.base_items_v AS
SELECT b.id,
b.type,
b.data,
b.path,
b.channel_id,
b.is_movie,
b.community_rating,
b.custom_rating,
b.index_number,
b.is_locked,
b.name,
b.official_rating,
b.media_type,
b.overview,
b.parent_index_number,
b.premiere_date,
b.production_year,
b.genres,
b.sort_name,
b.forced_sort_name,
b.run_time_ticks,
b.date_created,
b.date_modified,
b.is_series,
b.is_repeat,
b.preferred_metadata_language,
b.preferred_metadata_country_code,
b.date_last_refreshed,
b.date_last_saved,
b.is_in_mixed_folder,
b.studios,
b.tags,
b.is_folder,
b.inherited_parental_rating_value,
b.inherited_parental_rating_sub_value,
b.unrated_type,
b.critic_rating,
b.clean_name,
b.presentation_unique_key,
b.original_title,
b.primary_version_id,
b.date_last_media_added,
b.is_virtual_item,
b.tagline,
b.production_locations,
b.extra_ids,
b.total_bitrate,
b.extra_type,
b.external_id,
b.owner_id,
b.width,
b.height,
b.size,
b.parent_id,
b.top_parent_id,
tv.series_id,
tv.season_id,
tv.series_name,
tv.season_name,
tv.series_presentation_unique_key,
ltv.start_date,
ltv.end_date,
ltv.episode_title,
ltv.show_id,
ltv.external_series_id,
ltv.external_service_id,
ltv.audio,
au.album,
au.artists,
au.album_artists,
au.lufs,
au.normalization_gain
FROM (((library.base_items b
LEFT JOIN library.base_item_tv_extras tv ON ((tv.item_id = b.id)))
LEFT JOIN library.base_item_live_tv_extras ltv ON ((ltv.item_id = b.id)))
LEFT JOIN library.base_item_audio_extras au ON ((au.item_id = b.id)));
ALTER VIEW library.base_items_v OWNER TO postgres;
--
-- Name: chapters; Type: TABLE; Schema: library; Owner: jellyfin
--
CREATE TABLE library.chapters (
item_id uuid CONSTRAINT "Chapters_ItemId_not_null" NOT NULL,
chapter_index integer CONSTRAINT "Chapters_ChapterIndex_not_null" NOT NULL,
start_position_ticks bigint CONSTRAINT "Chapters_StartPositionTicks_not_null" NOT NULL,
name text,
image_path text,
image_date_modified timestamp with time zone
);
ALTER TABLE library.chapters OWNER TO jellyfin;
--
-- Name: people_base_item_map; Type: TABLE; Schema: library; Owner: jellyfin
--
CREATE TABLE library.people_base_item_map (
role text CONSTRAINT "PeopleBaseItemMap_Role_not_null" NOT NULL,
item_id uuid CONSTRAINT "PeopleBaseItemMap_ItemId_not_null" NOT NULL,
people_id uuid CONSTRAINT "PeopleBaseItemMap_PeopleId_not_null" NOT NULL,
sort_order integer,
list_order integer
);
ALTER TABLE library.people_base_item_map OWNER TO jellyfin;
--
-- Name: peoples; Type: TABLE; Schema: library; Owner: jellyfin
--
CREATE TABLE library.peoples (
id uuid CONSTRAINT "Peoples_Id_not_null" NOT NULL,
name text CONSTRAINT "Peoples_Name_not_null" NOT NULL,
person_type text
);
ALTER TABLE library.peoples OWNER TO jellyfin;
--
-- Name: item_people_v; Type: VIEW; Schema: library; Owner: postgres
--
CREATE VIEW library.item_people_v AS
SELECT b.id AS item_id,
b.type AS item_type,
b.name AS item_name,
tv.series_name,
b.production_year,
pe.id AS person_id,
pe.name AS person_name,
pe.person_type,
pm.role,
pm.sort_order,
pm.list_order
FROM (((library.people_base_item_map pm
JOIN library.base_items b ON ((pm.item_id = b.id)))
JOIN library.peoples pe ON ((pm.people_id = pe.id)))
LEFT JOIN library.base_item_tv_extras tv ON ((tv.item_id = b.id)))
WHERE (b.is_virtual_item = false);
ALTER VIEW library.item_people_v OWNER TO postgres;
--
-- Name: item_providers_v; Type: VIEW; Schema: library; Owner: postgres
--
CREATE VIEW library.item_providers_v AS
SELECT b.id AS item_id,
b.type,
b.name,
b.original_title,
b.production_year,
tv.series_name,
b.index_number AS episode_number,
b.parent_index_number AS season_number,
max(
CASE
WHEN (p.provider_id = 'Imdb'::text) THEN p.provider_value
ELSE NULL::text
END) AS imdb_id,
max(
CASE
WHEN (p.provider_id = 'Tmdb'::text) THEN p.provider_value
ELSE NULL::text
END) AS tmdb_id,
max(
CASE
WHEN (p.provider_id = 'Tvdb'::text) THEN p.provider_value
ELSE NULL::text
END) AS tvdb_id,
max(
CASE
WHEN (p.provider_id = 'TvRage'::text) THEN p.provider_value
ELSE NULL::text
END) AS tv_rage_id,
max(
CASE
WHEN (p.provider_id = 'MusicBrainzAlbum'::text) THEN p.provider_value
ELSE NULL::text
END) AS music_brainz_album_id,
max(
CASE
WHEN (p.provider_id = 'MusicBrainzArtist'::text) THEN p.provider_value
ELSE NULL::text
END) AS music_brainz_artist_id,
CASE
WHEN (count(
CASE
WHEN (p.provider_id <> ALL (ARRAY['Imdb'::text, 'Tmdb'::text, 'Tvdb'::text, 'TvRage'::text, 'MusicBrainzAlbum'::text, 'MusicBrainzArtist'::text])) THEN 1
ELSE NULL::integer
END) > 0) THEN (jsonb_object_agg(p.provider_id, p.provider_value) FILTER (WHERE (p.provider_id <> ALL (ARRAY['Imdb'::text, 'Tmdb'::text, 'Tvdb'::text, 'TvRage'::text, 'MusicBrainzAlbum'::text, 'MusicBrainzArtist'::text]))))::text
ELSE NULL::text
END AS other_providers
FROM ((library.base_items b
LEFT JOIN library.base_item_providers p ON ((b.id = p.item_id)))
LEFT JOIN library.base_item_tv_extras tv ON ((b.id = tv.item_id)))
WHERE (b.is_virtual_item = false)
GROUP BY b.id, b.type, b.name, b.original_title, b.production_year, tv.series_name, b.index_number, b.parent_index_number;
ALTER VIEW library.item_providers_v OWNER TO postgres;
--
-- Name: item_values; Type: TABLE; Schema: library; Owner: jellyfin
--
CREATE TABLE library.item_values (
item_value_id uuid CONSTRAINT "ItemValues_ItemValueId_not_null" NOT NULL,
type integer CONSTRAINT "ItemValues_Type_not_null" NOT NULL,
value text CONSTRAINT "ItemValues_Value_not_null" NOT NULL,
clean_value text CONSTRAINT "ItemValues_CleanValue_not_null" NOT NULL
);
ALTER TABLE library.item_values OWNER TO jellyfin;
--
-- Name: item_values_map; Type: TABLE; Schema: library; Owner: jellyfin
--
CREATE TABLE library.item_values_map (
item_id uuid CONSTRAINT "ItemValuesMap_ItemId_not_null" NOT NULL,
item_value_id uuid CONSTRAINT "ItemValuesMap_ItemValueId_not_null" NOT NULL
);
ALTER TABLE library.item_values_map OWNER TO jellyfin;
--
-- Name: keyframe_data; Type: TABLE; Schema: library; Owner: jellyfin
--
CREATE TABLE library.keyframe_data (
item_id uuid CONSTRAINT "KeyframeData_ItemId_not_null" NOT NULL,
total_duration bigint CONSTRAINT "KeyframeData_TotalDuration_not_null" NOT NULL,
keyframe_ticks bigint[]
);
ALTER TABLE library.keyframe_data OWNER TO jellyfin;
--
-- Name: library_options; Type: TABLE; Schema: library; Owner: postgres
--
CREATE TABLE library.library_options (
library_path text CONSTRAINT "LibraryOptions_LibraryPath_not_null" NOT NULL,
options_json jsonb CONSTRAINT "LibraryOptions_OptionsJson_not_null" NOT NULL,
version integer DEFAULT 1 CONSTRAINT "LibraryOptions_Version_not_null" NOT NULL,
date_created timestamp with time zone DEFAULT now() CONSTRAINT "LibraryOptions_DateCreated_not_null" NOT NULL,
date_modified timestamp with time zone DEFAULT now() CONSTRAINT "LibraryOptions_DateModified_not_null" NOT NULL
);
ALTER TABLE library.library_options OWNER TO postgres;
--
-- Name: media_stream_infos; Type: TABLE; Schema: library; Owner: jellyfin
--
CREATE TABLE library.media_stream_infos (
item_id uuid CONSTRAINT "MediaStreamInfos_ItemId_not_null" NOT NULL,
stream_index integer CONSTRAINT "MediaStreamInfos_StreamIndex_not_null" NOT NULL,
stream_type integer CONSTRAINT "MediaStreamInfos_StreamType_not_null" NOT NULL,
codec text,
language text,
profile text,
path text,
bit_rate integer,
is_default boolean CONSTRAINT "MediaStreamInfos_IsDefault_not_null" NOT NULL,
is_forced boolean CONSTRAINT "MediaStreamInfos_IsForced_not_null" NOT NULL,
is_external boolean CONSTRAINT "MediaStreamInfos_IsExternal_not_null" NOT NULL,
level real,
codec_tag text,
comment text,
is_avc boolean,
title text,
time_base text,
codec_time_base text
);
ALTER TABLE library.media_stream_infos OWNER TO jellyfin;
--
-- Name: video_stream_details; Type: TABLE; Schema: library; Owner: postgres
--
CREATE TABLE library.video_stream_details (
item_id uuid CONSTRAINT "VideoStreamDetails_ItemId_not_null" NOT NULL,
stream_index integer CONSTRAINT "VideoStreamDetails_StreamIndex_not_null" NOT NULL,
aspect_ratio text,
is_interlaced boolean,
height integer,
width integer,
average_frame_rate real,
real_frame_rate real,
pixel_format text,
bit_depth integer,
is_anamorphic boolean,
ref_frames integer,
nal_length_size text,
color_primaries text,
color_space text,
color_transfer text,
dv_version_major integer,
dv_version_minor integer,
dv_profile integer,
dv_level integer,
rpu_present_flag integer,
el_present_flag integer,
bl_present_flag integer,
dv_bl_signal_compatibility_id integer,
rotation integer,
key_frames text,
hdr10_plus_present_flag boolean
);
ALTER TABLE library.video_stream_details OWNER TO postgres;
--
-- Name: library_summary_v; Type: VIEW; Schema: library; Owner: postgres
--
CREATE VIEW library.library_summary_v AS
WITH primary_video AS (
SELECT DISTINCT ON (m.item_id) m.item_id,
vd.height,
vd.dv_profile,
vd.hdr10_plus_present_flag,
vd.color_transfer
FROM (library.media_stream_infos m
JOIN library.video_stream_details vd ON (((vd.item_id = m.item_id) AND (vd.stream_index = m.stream_index))))
WHERE (m.stream_type = 1)
ORDER BY m.item_id, m.stream_index
)
SELECT b.type,
count(*) AS item_count,
count(*) FILTER (WHERE (b.production_year IS NOT NULL)) AS with_year,
min(b.production_year) AS oldest_year,
max(b.production_year) AS newest_year,
round((avg(b.community_rating))::numeric, 2) AS avg_community_rating,
sum(b.run_time_ticks) AS total_run_time_ticks,
round((COALESCE(sum(b.run_time_ticks), (0)::numeric) / 600000000.0), 1) AS total_runtime_hours,
sum(b.size) AS total_size_bytes,
round((COALESCE(sum(b.size), (0)::numeric) / (1024.0 ^ (3)::numeric)), 2) AS total_size_gb,
count(*) FILTER (WHERE (pv.height >= 2160)) AS count4_k,
count(*) FILTER (WHERE ((pv.height >= 1080) AND (pv.height <= 2159))) AS count1080p,
count(*) FILTER (WHERE ((pv.height >= 720) AND (pv.height <= 1079))) AS count720p,
count(*) FILTER (WHERE ((pv.height < 720) AND (pv.height IS NOT NULL))) AS count_sd,
count(*) FILTER (WHERE (pv.dv_profile IS NOT NULL)) AS count_dolby_vision,
count(*) FILTER (WHERE (pv.hdr10_plus_present_flag = true)) AS count_hdr10_plus,
count(*) FILTER (WHERE ((pv.color_transfer = 'smpte2084'::text) AND (pv.dv_profile IS NULL) AND (pv.hdr10_plus_present_flag IS NOT TRUE))) AS count_hdr10
FROM (library.base_items b
LEFT JOIN primary_video pv ON ((pv.item_id = b.id)))
WHERE ((b.is_virtual_item = false) AND (b.is_folder = false))
GROUP BY b.type
ORDER BY (count(*)) DESC;
ALTER VIEW library.library_summary_v OWNER TO postgres;
--
-- Name: media_segments; Type: TABLE; Schema: library; Owner: jellyfin
--
CREATE TABLE library.media_segments (
id uuid CONSTRAINT "MediaSegments_Id_not_null" NOT NULL,
item_id uuid CONSTRAINT "MediaSegments_ItemId_not_null" NOT NULL,
type integer CONSTRAINT "MediaSegments_Type_not_null" NOT NULL,
end_ticks bigint CONSTRAINT "MediaSegments_EndTicks_not_null" NOT NULL,
start_ticks bigint CONSTRAINT "MediaSegments_StartTicks_not_null" NOT NULL,
segment_provider_id text CONSTRAINT "MediaSegments_SegmentProviderId_not_null" NOT NULL
);
ALTER TABLE library.media_segments OWNER TO jellyfin;
--
-- Name: media_stream_infos_v; Type: VIEW; Schema: library; Owner: postgres
--
CREATE VIEW library.media_stream_infos_v AS
SELECT m.item_id,
m.stream_index,
m.stream_type,
m.codec,
m.language,
m.profile,
m.path,
m.bit_rate,
m.is_default,
m.is_forced,
m.is_external,
m.level,
m.codec_tag,
m.comment,
m.is_avc,
m.title,
m.time_base,
m.codec_time_base,
a.channel_layout,
a.channels,
a.sample_rate,
a.is_hearing_impaired,
v.aspect_ratio,
v.is_interlaced,
v.height,
v.width,
v.average_frame_rate,
v.real_frame_rate,
v.pixel_format,
v.bit_depth,
v.is_anamorphic,
v.ref_frames,
v.nal_length_size,
v.color_primaries,
v.color_space,
v.color_transfer,
v.dv_version_major,
v.dv_version_minor,
v.dv_profile,
v.dv_level,
v.rpu_present_flag,
v.el_present_flag,
v.bl_present_flag,
v.dv_bl_signal_compatibility_id,
v.rotation,
v.key_frames,
v.hdr10_plus_present_flag
FROM ((library.media_stream_infos m
LEFT JOIN library.audio_stream_details a ON (((m.item_id = a.item_id) AND (m.stream_index = a.stream_index))))
LEFT JOIN library.video_stream_details v ON (((m.item_id = v.item_id) AND (m.stream_index = v.stream_index))));
ALTER VIEW library.media_stream_infos_v OWNER TO postgres;
--
-- Name: trickplay_infos; Type: TABLE; Schema: library; Owner: jellyfin
--
CREATE TABLE library.trickplay_infos (
item_id uuid CONSTRAINT "TrickplayInfos_ItemId_not_null" NOT NULL,
width integer CONSTRAINT "TrickplayInfos_Width_not_null" NOT NULL,
height integer CONSTRAINT "TrickplayInfos_Height_not_null" NOT NULL,
tile_width integer CONSTRAINT "TrickplayInfos_TileWidth_not_null" NOT NULL,
tile_height integer CONSTRAINT "TrickplayInfos_TileHeight_not_null" NOT NULL,
thumbnail_count integer CONSTRAINT "TrickplayInfos_ThumbnailCount_not_null" NOT NULL,
"interval" integer CONSTRAINT "TrickplayInfos_Interval_not_null" NOT NULL,
bandwidth integer CONSTRAINT "TrickplayInfos_Bandwidth_not_null" NOT NULL
);
ALTER TABLE library.trickplay_infos OWNER TO jellyfin;
--
-- Name: user_data; Type: TABLE; Schema: library; Owner: jellyfin
--
CREATE TABLE library.user_data (
custom_data_key text CONSTRAINT "UserData_CustomDataKey_not_null" NOT NULL,
item_id uuid CONSTRAINT "UserData_ItemId_not_null" NOT NULL,
user_id uuid CONSTRAINT "UserData_UserId_not_null" NOT NULL,
rating double precision,
playback_position_ticks bigint CONSTRAINT "UserData_PlaybackPositionTicks_not_null" NOT NULL,
play_count integer CONSTRAINT "UserData_PlayCount_not_null" NOT NULL,
is_favorite boolean CONSTRAINT "UserData_IsFavorite_not_null" NOT NULL,
last_played_date timestamp with time zone,
played boolean CONSTRAINT "UserData_Played_not_null" NOT NULL,
audio_stream_index integer,
subtitle_stream_index integer,
likes boolean,
retention_date timestamp with time zone
);
ALTER TABLE library.user_data OWNER TO jellyfin;
--
-- Name: users; Type: TABLE; Schema: users; Owner: jellyfin
--
CREATE TABLE users.users (
id uuid CONSTRAINT "Users_Id_not_null" NOT NULL,
username character varying(255) CONSTRAINT "Users_Username_not_null" NOT NULL,
password character varying(65535),
must_update_password boolean CONSTRAINT "Users_MustUpdatePassword_not_null" NOT NULL,
audio_language_preference character varying(255),
authentication_provider_id character varying(255) CONSTRAINT "Users_AuthenticationProviderId_not_null" NOT NULL,
password_reset_provider_id character varying(255) CONSTRAINT "Users_PasswordResetProviderId_not_null" NOT NULL,
invalid_login_attempt_count integer CONSTRAINT "Users_InvalidLoginAttemptCount_not_null" NOT NULL,
last_activity_date timestamp with time zone,
last_login_date timestamp with time zone,
login_attempts_before_lockout integer,
max_active_sessions integer CONSTRAINT "Users_MaxActiveSessions_not_null" NOT NULL,
subtitle_mode integer CONSTRAINT "Users_SubtitleMode_not_null" NOT NULL,
play_default_audio_track boolean CONSTRAINT "Users_PlayDefaultAudioTrack_not_null" NOT NULL,
subtitle_language_preference character varying(255),
display_missing_episodes boolean CONSTRAINT "Users_DisplayMissingEpisodes_not_null" NOT NULL,
display_collections_view boolean CONSTRAINT "Users_DisplayCollectionsView_not_null" NOT NULL,
enable_local_password boolean CONSTRAINT "Users_EnableLocalPassword_not_null" NOT NULL,
hide_played_in_latest boolean CONSTRAINT "Users_HidePlayedInLatest_not_null" NOT NULL,
remember_audio_selections boolean CONSTRAINT "Users_RememberAudioSelections_not_null" NOT NULL,
remember_subtitle_selections boolean CONSTRAINT "Users_RememberSubtitleSelections_not_null" NOT NULL,
enable_next_episode_auto_play boolean CONSTRAINT "Users_EnableNextEpisodeAutoPlay_not_null" NOT NULL,
enable_auto_login boolean CONSTRAINT "Users_EnableAutoLogin_not_null" NOT NULL,
enable_user_preference_access boolean CONSTRAINT "Users_EnableUserPreferenceAccess_not_null" NOT NULL,
max_parental_rating_score integer,
max_parental_rating_sub_score integer,
remote_client_bitrate_limit integer,
internal_id bigint CONSTRAINT "Users_InternalId_not_null" NOT NULL,
sync_play_access integer CONSTRAINT "Users_SyncPlayAccess_not_null" NOT NULL,
cast_receiver_id character varying(32),
row_version bigint CONSTRAINT "Users_RowVersion_not_null" NOT NULL
);
ALTER TABLE users.users OWNER TO jellyfin;
--
-- Name: user_playback_history_v; Type: VIEW; Schema: library; Owner: postgres
--
CREATE VIEW library.user_playback_history_v AS
SELECT u.username,
u.id AS user_id,
b.name AS item_name,
b.type AS item_type,
tv.series_name,
tv.season_name,
b.index_number AS episode_number,
b.parent_index_number AS season_number,
b.production_year,
b.run_time_ticks,
ud.item_id,
ud.played,
ud.play_count,
ud.last_played_date,
ud.playback_position_ticks,
CASE
WHEN (b.run_time_ticks > 0) THEN round((((ud.playback_position_ticks)::numeric * (100)::numeric) / (b.run_time_ticks)::numeric), 1)
ELSE NULL::numeric
END AS progress_pct,
ud.is_favorite,
ud.rating,
ud.audio_stream_index,
ud.subtitle_stream_index
FROM (((library.user_data ud
JOIN library.base_items b ON ((ud.item_id = b.id)))
JOIN users.users u ON ((ud.user_id = u.id)))
LEFT JOIN library.base_item_tv_extras tv ON ((tv.item_id = b.id)))
WHERE (ud.custom_data_key = ''::text);
ALTER VIEW library.user_playback_history_v OWNER TO postgres;
--
-- Name: video_items_v; Type: VIEW; Schema: library; Owner: postgres
--
CREATE VIEW library.video_items_v AS
SELECT b.id AS item_id,
b.type,
b.name,
b.original_title,
b.production_year,
b.official_rating,
b.community_rating,
b.run_time_ticks,
b.path,
b.date_created,
b.date_modified,
tv.series_name,
tv.season_name,
b.index_number AS episode_number,
b.parent_index_number AS season_number,
b.total_bitrate,
b.size,
m.codec AS video_codec,
m.profile AS video_profile,
vd.width,
vd.height,
vd.average_frame_rate,
vd.bit_depth,
vd.pixel_format,
vd.color_space,
vd.color_transfer,
vd.color_primaries,
vd.is_interlaced,
vd.is_anamorphic,
vd.aspect_ratio,
(vd.dv_profile IS NOT NULL) AS is_dolby_vision,
vd.hdr10_plus_present_flag AS is_hdr10_plus,
CASE
WHEN (vd.dv_profile IS NOT NULL) THEN 'Dolby Vision'::text
WHEN (vd.hdr10_plus_present_flag = true) THEN 'HDR10+'::text
WHEN (vd.color_transfer = 'smpte2084'::text) THEN 'HDR10'::text
WHEN (vd.color_transfer = 'arib-std-b67'::text) THEN 'HLG'::text
ELSE 'SDR'::text
END AS hdr_format,
( SELECT count(*) AS count
FROM library.media_stream_infos ms
WHERE ((ms.item_id = b.id) AND (ms.stream_type = 0))) AS audio_track_count,
( SELECT count(*) AS count
FROM library.media_stream_infos ms
WHERE ((ms.item_id = b.id) AND (ms.stream_type = 2))) AS subtitle_track_count
FROM (((library.base_items b
JOIN LATERAL ( SELECT ms.stream_index,
ms.codec,
ms.profile
FROM library.media_stream_infos ms
WHERE ((ms.item_id = b.id) AND (ms.stream_type = 1))
ORDER BY ms.stream_index
LIMIT 1) m ON (true))
JOIN library.video_stream_details vd ON (((vd.item_id = b.id) AND (vd.stream_index = m.stream_index))))
LEFT JOIN library.base_item_tv_extras tv ON ((tv.item_id = b.id)))
WHERE ((b.is_virtual_item = false) AND (b.is_folder = false));
ALTER VIEW library.video_items_v OWNER TO postgres;
--
-- Name: __ef_migrations_history; Type: TABLE; Schema: public; Owner: jellyfin
--
CREATE TABLE public.__ef_migrations_history (
migration_id character varying(150) CONSTRAINT "__EFMigrationsHistory_MigrationId_not_null" NOT NULL,
product_version character varying(32) CONSTRAINT "__EFMigrationsHistory_ProductVersion_not_null" NOT NULL
);
ALTER TABLE public.__ef_migrations_history OWNER TO jellyfin;
--
-- Name: bloat_tables; Type: TABLE; Schema: public; Owner: jellyfin
--
CREATE TABLE public.bloat_tables (
count bigint
);
ALTER TABLE public.bloat_tables OWNER TO jellyfin;
--
-- Name: access_schedules; Type: TABLE; Schema: users; Owner: jellyfin
--
CREATE TABLE users.access_schedules (
id integer CONSTRAINT "AccessSchedules_Id_not_null" NOT NULL,
user_id uuid CONSTRAINT "AccessSchedules_UserId_not_null" NOT NULL,
day_of_week integer CONSTRAINT "AccessSchedules_DayOfWeek_not_null" NOT NULL,
start_hour double precision CONSTRAINT "AccessSchedules_StartHour_not_null" NOT NULL,
end_hour double precision CONSTRAINT "AccessSchedules_EndHour_not_null" NOT NULL
);
ALTER TABLE users.access_schedules OWNER TO jellyfin;
--
-- Name: AccessSchedules_Id_seq; Type: SEQUENCE; Schema: users; Owner: jellyfin
--
ALTER TABLE users.access_schedules ALTER COLUMN id ADD GENERATED BY DEFAULT AS IDENTITY (
SEQUENCE NAME users."AccessSchedules_Id_seq"
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1
);
--
-- Name: permissions; Type: TABLE; Schema: users; Owner: jellyfin
--
CREATE TABLE users.permissions (
id integer CONSTRAINT "Permissions_Id_not_null" NOT NULL,
user_id uuid,
kind integer CONSTRAINT "Permissions_Kind_not_null" NOT NULL,
value boolean CONSTRAINT "Permissions_Value_not_null" NOT NULL,
row_version bigint CONSTRAINT "Permissions_RowVersion_not_null" NOT NULL,
permission_permissions_guid uuid
);
ALTER TABLE users.permissions OWNER TO jellyfin;
--
-- Name: Permissions_Id_seq; Type: SEQUENCE; Schema: users; Owner: jellyfin
--
ALTER TABLE users.permissions ALTER COLUMN id ADD GENERATED BY DEFAULT AS IDENTITY (
SEQUENCE NAME users."Permissions_Id_seq"
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1
);
--
-- Name: preferences; Type: TABLE; Schema: users; Owner: jellyfin
--
CREATE TABLE users.preferences (
id integer CONSTRAINT "Preferences_Id_not_null" NOT NULL,
user_id uuid,
kind integer CONSTRAINT "Preferences_Kind_not_null" NOT NULL,
value character varying(65535) CONSTRAINT "Preferences_Value_not_null" NOT NULL,
row_version bigint CONSTRAINT "Preferences_RowVersion_not_null" NOT NULL,
preference_preferences_guid uuid
);
ALTER TABLE users.preferences OWNER TO jellyfin;
--
-- Name: Preferences_Id_seq; Type: SEQUENCE; Schema: users; Owner: jellyfin
--
ALTER TABLE users.preferences ALTER COLUMN id ADD GENERATED BY DEFAULT AS IDENTITY (
SEQUENCE NAME users."Preferences_Id_seq"
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1
);
--
-- Name: activity_logs PK_ActivityLogs; Type: CONSTRAINT; Schema: activitylog; Owner: jellyfin
--
ALTER TABLE ONLY activitylog.activity_logs
ADD CONSTRAINT "PK_ActivityLogs" PRIMARY KEY (id);
--
-- Name: api_keys PK_ApiKeys; Type: CONSTRAINT; Schema: authentication; Owner: jellyfin
--
ALTER TABLE ONLY authentication.api_keys
ADD CONSTRAINT "PK_ApiKeys" PRIMARY KEY (id);
--
-- Name: device_options PK_DeviceOptions; Type: CONSTRAINT; Schema: authentication; Owner: jellyfin
--
ALTER TABLE ONLY authentication.device_options
ADD CONSTRAINT "PK_DeviceOptions" PRIMARY KEY (id);
--
-- Name: devices PK_Devices; Type: CONSTRAINT; Schema: authentication; Owner: jellyfin
--
ALTER TABLE ONLY authentication.devices
ADD CONSTRAINT "PK_Devices" PRIMARY KEY (id);
--
-- Name: custom_item_display_preferences PK_CustomItemDisplayPreferences; Type: CONSTRAINT; Schema: displaypreferences; Owner: jellyfin
--
ALTER TABLE ONLY displaypreferences.custom_item_display_preferences
ADD CONSTRAINT "PK_CustomItemDisplayPreferences" PRIMARY KEY (id);
--
-- Name: display_preferences PK_DisplayPreferences; Type: CONSTRAINT; Schema: displaypreferences; Owner: jellyfin
--
ALTER TABLE ONLY displaypreferences.display_preferences
ADD CONSTRAINT "PK_DisplayPreferences" PRIMARY KEY (id);
--
-- Name: home_sections PK_HomeSection; Type: CONSTRAINT; Schema: displaypreferences; Owner: jellyfin
--
ALTER TABLE ONLY displaypreferences.home_sections
ADD CONSTRAINT "PK_HomeSection" PRIMARY KEY (id);
--
-- Name: item_display_preferences PK_ItemDisplayPreferences; Type: CONSTRAINT; Schema: displaypreferences; Owner: jellyfin
--
ALTER TABLE ONLY displaypreferences.item_display_preferences
ADD CONSTRAINT "PK_ItemDisplayPreferences" PRIMARY KEY (id);
--
-- Name: base_item_image_infos BaseItemImageInfos_pkey; Type: CONSTRAINT; Schema: library; Owner: jellyfin
--
ALTER TABLE ONLY library.base_item_image_infos
ADD CONSTRAINT "BaseItemImageInfos_pkey" PRIMARY KEY (id);
--
-- Name: ancestor_ids PK_AncestorIds; Type: CONSTRAINT; Schema: library; Owner: jellyfin
--
ALTER TABLE ONLY library.ancestor_ids
ADD CONSTRAINT "PK_AncestorIds" PRIMARY KEY (item_id, parent_item_id);
--
-- Name: attachment_stream_infos PK_AttachmentStreamInfos; Type: CONSTRAINT; Schema: library; Owner: jellyfin
--
ALTER TABLE ONLY library.attachment_stream_infos
ADD CONSTRAINT "PK_AttachmentStreamInfos" PRIMARY KEY (item_id, index);
--
-- Name: audio_stream_details PK_AudioStreamDetails; Type: CONSTRAINT; Schema: library; Owner: postgres
--
ALTER TABLE ONLY library.audio_stream_details
ADD CONSTRAINT "PK_AudioStreamDetails" PRIMARY KEY (item_id, stream_index);
--
-- Name: base_item_audio_extras PK_BaseItemAudioExtras; Type: CONSTRAINT; Schema: library; Owner: postgres
--
ALTER TABLE ONLY library.base_item_audio_extras
ADD CONSTRAINT "PK_BaseItemAudioExtras" PRIMARY KEY (item_id);
--
-- Name: base_item_live_tv_extras PK_BaseItemLiveTvExtras; Type: CONSTRAINT; Schema: library; Owner: postgres
--
ALTER TABLE ONLY library.base_item_live_tv_extras
ADD CONSTRAINT "PK_BaseItemLiveTvExtras" PRIMARY KEY (item_id);
--
-- Name: base_item_metadata_fields PK_BaseItemMetadataFields; Type: CONSTRAINT; Schema: library; Owner: jellyfin
--
ALTER TABLE ONLY library.base_item_metadata_fields
ADD CONSTRAINT "PK_BaseItemMetadataFields" PRIMARY KEY (id, item_id);
--
-- Name: base_item_providers PK_BaseItemProviders; Type: CONSTRAINT; Schema: library; Owner: jellyfin
--
ALTER TABLE ONLY library.base_item_providers
ADD CONSTRAINT "PK_BaseItemProviders" PRIMARY KEY (item_id, provider_id);
--
-- Name: base_item_trailer_types PK_BaseItemTrailerTypes; Type: CONSTRAINT; Schema: library; Owner: jellyfin
--
ALTER TABLE ONLY library.base_item_trailer_types
ADD CONSTRAINT "PK_BaseItemTrailerTypes" PRIMARY KEY (id, item_id);
--
-- Name: base_item_tv_extras PK_BaseItemTvExtras; Type: CONSTRAINT; Schema: library; Owner: postgres
--
ALTER TABLE ONLY library.base_item_tv_extras
ADD CONSTRAINT "PK_BaseItemTvExtras" PRIMARY KEY (item_id);
--
-- Name: base_items PK_BaseItems; Type: CONSTRAINT; Schema: library; Owner: jellyfin
--
ALTER TABLE ONLY library.base_items
ADD CONSTRAINT "PK_BaseItems" PRIMARY KEY (id);
--
-- Name: chapters PK_Chapters; Type: CONSTRAINT; Schema: library; Owner: jellyfin
--
ALTER TABLE ONLY library.chapters
ADD CONSTRAINT "PK_Chapters" PRIMARY KEY (item_id, chapter_index);
--
-- Name: image_infos PK_ImageInfos; Type: CONSTRAINT; Schema: library; Owner: jellyfin
--
ALTER TABLE ONLY library.image_infos
ADD CONSTRAINT "PK_ImageInfos" PRIMARY KEY (id);
--
-- Name: item_values PK_ItemValues; Type: CONSTRAINT; Schema: library; Owner: jellyfin
--
ALTER TABLE ONLY library.item_values
ADD CONSTRAINT "PK_ItemValues" PRIMARY KEY (item_value_id);
--
-- Name: keyframe_data PK_KeyframeData; Type: CONSTRAINT; Schema: library; Owner: jellyfin
--
ALTER TABLE ONLY library.keyframe_data
ADD CONSTRAINT "PK_KeyframeData" PRIMARY KEY (item_id);
--
-- Name: library_options PK_LibraryOptions; Type: CONSTRAINT; Schema: library; Owner: postgres
--
ALTER TABLE ONLY library.library_options
ADD CONSTRAINT "PK_LibraryOptions" PRIMARY KEY (library_path);
--
-- Name: media_segments PK_MediaSegments; Type: CONSTRAINT; Schema: library; Owner: jellyfin
--
ALTER TABLE ONLY library.media_segments
ADD CONSTRAINT "PK_MediaSegments" PRIMARY KEY (id);
--
-- Name: media_stream_infos PK_MediaStreamInfos; Type: CONSTRAINT; Schema: library; Owner: jellyfin
--
ALTER TABLE ONLY library.media_stream_infos
ADD CONSTRAINT "PK_MediaStreamInfos" PRIMARY KEY (item_id, stream_index);
--
-- Name: peoples PK_Peoples; Type: CONSTRAINT; Schema: library; Owner: jellyfin
--
ALTER TABLE ONLY library.peoples
ADD CONSTRAINT "PK_Peoples" PRIMARY KEY (id);
--
-- Name: trickplay_infos PK_TrickplayInfos; Type: CONSTRAINT; Schema: library; Owner: jellyfin
--
ALTER TABLE ONLY library.trickplay_infos
ADD CONSTRAINT "PK_TrickplayInfos" PRIMARY KEY (item_id, width);
--
-- Name: user_data PK_UserData; Type: CONSTRAINT; Schema: library; Owner: jellyfin
--
ALTER TABLE ONLY library.user_data
ADD CONSTRAINT "PK_UserData" PRIMARY KEY (item_id, user_id, custom_data_key);
--
-- Name: video_stream_details PK_VideoStreamDetails; Type: CONSTRAINT; Schema: library; Owner: postgres
--
ALTER TABLE ONLY library.video_stream_details
ADD CONSTRAINT "PK_VideoStreamDetails" PRIMARY KEY (item_id, stream_index);
--
-- Name: __ef_migrations_history PK___EFMigrationsHistory; Type: CONSTRAINT; Schema: public; Owner: jellyfin
--
ALTER TABLE ONLY public.__ef_migrations_history
ADD CONSTRAINT "PK___EFMigrationsHistory" PRIMARY KEY (migration_id);
--
-- Name: access_schedules PK_AccessSchedules; Type: CONSTRAINT; Schema: users; Owner: jellyfin
--
ALTER TABLE ONLY users.access_schedules
ADD CONSTRAINT "PK_AccessSchedules" PRIMARY KEY (id);
--
-- Name: permissions PK_Permissions; Type: CONSTRAINT; Schema: users; Owner: jellyfin
--
ALTER TABLE ONLY users.permissions
ADD CONSTRAINT "PK_Permissions" PRIMARY KEY (id);
--
-- Name: preferences PK_Preferences; Type: CONSTRAINT; Schema: users; Owner: jellyfin
--
ALTER TABLE ONLY users.preferences
ADD CONSTRAINT "PK_Preferences" PRIMARY KEY (id);
--
-- Name: users PK_Users; Type: CONSTRAINT; Schema: users; Owner: jellyfin
--
ALTER TABLE ONLY users.users
ADD CONSTRAINT "PK_Users" PRIMARY KEY (id);
--
-- Name: IX_ActivityLogs_DateCreated; Type: INDEX; Schema: activitylog; Owner: jellyfin
--
CREATE INDEX "IX_ActivityLogs_DateCreated" ON activitylog.activity_logs USING btree (date_created);
--
-- Name: idx_activitylogs_userid_datecreated; Type: INDEX; Schema: activitylog; Owner: jellyfin
--
CREATE INDEX idx_activitylogs_userid_datecreated ON activitylog.activity_logs USING btree (user_id, date_created DESC) WHERE (user_id IS NOT NULL);
--
-- Name: IX_ApiKeys_AccessToken; Type: INDEX; Schema: authentication; Owner: jellyfin
--
CREATE UNIQUE INDEX "IX_ApiKeys_AccessToken" ON authentication.api_keys USING btree (access_token);
--
-- Name: IX_DeviceOptions_DeviceId; Type: INDEX; Schema: authentication; Owner: jellyfin
--
CREATE UNIQUE INDEX "IX_DeviceOptions_DeviceId" ON authentication.device_options USING btree (device_id);
--
-- Name: IX_Devices_AccessToken_DateLastActivity; Type: INDEX; Schema: authentication; Owner: jellyfin
--
CREATE INDEX "IX_Devices_AccessToken_DateLastActivity" ON authentication.devices USING btree (access_token, date_last_activity);
--
-- Name: IX_Devices_DeviceId; Type: INDEX; Schema: authentication; Owner: jellyfin
--
CREATE INDEX "IX_Devices_DeviceId" ON authentication.devices USING btree (device_id);
--
-- Name: IX_Devices_DeviceId_DateLastActivity; Type: INDEX; Schema: authentication; Owner: jellyfin
--
CREATE INDEX "IX_Devices_DeviceId_DateLastActivity" ON authentication.devices USING btree (device_id, date_last_activity);
--
-- Name: IX_Devices_UserId_DeviceId; Type: INDEX; Schema: authentication; Owner: jellyfin
--
CREATE INDEX "IX_Devices_UserId_DeviceId" ON authentication.devices USING btree (user_id, device_id);
--
-- Name: IX_CustomItemDisplayPreferences_UserId_ItemId_Client_Key; Type: INDEX; Schema: displaypreferences; Owner: jellyfin
--
CREATE UNIQUE INDEX "IX_CustomItemDisplayPreferences_UserId_ItemId_Client_Key" ON displaypreferences.custom_item_display_preferences USING btree (user_id, item_id, client, key);
--
-- Name: IX_DisplayPreferences_UserId_ItemId_Client; Type: INDEX; Schema: displaypreferences; Owner: jellyfin
--
CREATE UNIQUE INDEX "IX_DisplayPreferences_UserId_ItemId_Client" ON displaypreferences.display_preferences USING btree (user_id, item_id, client);
--
-- Name: IX_HomeSection_DisplayPreferencesId; Type: INDEX; Schema: displaypreferences; Owner: jellyfin
--
CREATE INDEX "IX_HomeSection_DisplayPreferencesId" ON displaypreferences.home_sections USING btree (display_preferences_id);
--
-- Name: IX_ItemDisplayPreferences_UserId; Type: INDEX; Schema: displaypreferences; Owner: jellyfin
--
CREATE INDEX "IX_ItemDisplayPreferences_UserId" ON displaypreferences.item_display_preferences USING btree (user_id);
--
-- Name: IX_BaseItemImageInfos_ItemId; Type: INDEX; Schema: library; Owner: jellyfin
--
CREATE INDEX "IX_BaseItemImageInfos_ItemId" ON library.base_item_image_infos USING btree (item_id);
--
-- Name: IX_BaseItemLiveTvExtras_EndDate; Type: INDEX; Schema: library; Owner: postgres
--
CREATE INDEX "IX_BaseItemLiveTvExtras_EndDate" ON library.base_item_live_tv_extras USING btree (end_date);
--
-- Name: IX_BaseItemLiveTvExtras_StartDate; Type: INDEX; Schema: library; Owner: postgres
--
CREATE INDEX "IX_BaseItemLiveTvExtras_StartDate" ON library.base_item_live_tv_extras USING btree (start_date);
--
-- Name: IX_BaseItemMetadataFields_ItemId; Type: INDEX; Schema: library; Owner: jellyfin
--
CREATE INDEX "IX_BaseItemMetadataFields_ItemId" ON library.base_item_metadata_fields USING btree (item_id);
--
-- Name: IX_BaseItemTrailerTypes_ItemId; Type: INDEX; Schema: library; Owner: jellyfin
--
CREATE INDEX "IX_BaseItemTrailerTypes_ItemId" ON library.base_item_trailer_types USING btree (item_id);
--
-- Name: IX_BaseItemTvExtras_SeriesId; Type: INDEX; Schema: library; Owner: postgres
--
CREATE INDEX "IX_BaseItemTvExtras_SeriesId" ON library.base_item_tv_extras USING btree (series_id);
--
-- Name: IX_BaseItemTvExtras_SeriesPresentationUniqueKey; Type: INDEX; Schema: library; Owner: postgres
--
CREATE INDEX "IX_BaseItemTvExtras_SeriesPresentationUniqueKey" ON library.base_item_tv_extras USING btree (series_presentation_unique_key);
--
-- Name: IX_BaseItems_Id_Type_IsFolder_IsVirtualItem; Type: INDEX; Schema: library; Owner: jellyfin
--
CREATE INDEX "IX_BaseItems_Id_Type_IsFolder_IsVirtualItem" ON library.base_items USING btree (id, type, is_folder, is_virtual_item);
--
-- Name: IX_BaseItems_ParentId; Type: INDEX; Schema: library; Owner: jellyfin
--
CREATE INDEX "IX_BaseItems_ParentId" ON library.base_items USING btree (parent_id);
--
-- Name: IX_BaseItems_Type_TopParentId_Id; Type: INDEX; Schema: library; Owner: jellyfin
--
CREATE INDEX "IX_BaseItems_Type_TopParentId_Id" ON library.base_items USING btree (type, top_parent_id, id);
--
-- Name: IX_ImageInfos_UserId; Type: INDEX; Schema: library; Owner: jellyfin
--
CREATE UNIQUE INDEX "IX_ImageInfos_UserId" ON library.image_infos USING btree (user_id);
--
-- Name: IX_ItemValues_Type_CleanValue; Type: INDEX; Schema: library; Owner: jellyfin
--
CREATE INDEX "IX_ItemValues_Type_CleanValue" ON library.item_values USING btree (type, clean_value);
--
-- Name: IX_ItemValues_Type_Value; Type: INDEX; Schema: library; Owner: jellyfin
--
CREATE UNIQUE INDEX "IX_ItemValues_Type_Value" ON library.item_values USING btree (type, value);
--
-- Name: IX_LibraryOptions_DateModified; Type: INDEX; Schema: library; Owner: postgres
--
CREATE INDEX "IX_LibraryOptions_DateModified" ON library.library_options USING btree (date_modified DESC);
--
-- Name: IX_UserData_ItemId_UserId_IsFavorite; Type: INDEX; Schema: library; Owner: jellyfin
--
CREATE INDEX "IX_UserData_ItemId_UserId_IsFavorite" ON library.user_data USING btree (item_id, user_id, is_favorite);
--
-- Name: IX_UserData_ItemId_UserId_LastPlayedDate; Type: INDEX; Schema: library; Owner: jellyfin
--
CREATE INDEX "IX_UserData_ItemId_UserId_LastPlayedDate" ON library.user_data USING btree (item_id, user_id, last_played_date);
--
-- Name: IX_UserData_ItemId_UserId_PlaybackPositionTicks; Type: INDEX; Schema: library; Owner: jellyfin
--
CREATE INDEX "IX_UserData_ItemId_UserId_PlaybackPositionTicks" ON library.user_data USING btree (item_id, user_id, playback_position_ticks);
--
-- Name: IX_UserData_ItemId_UserId_Played; Type: INDEX; Schema: library; Owner: jellyfin
--
CREATE INDEX "IX_UserData_ItemId_UserId_Played" ON library.user_data USING btree (item_id, user_id, played);
--
-- Name: idx_itemvalues_cleanvalue; Type: INDEX; Schema: library; Owner: jellyfin
--
CREATE INDEX idx_itemvalues_cleanvalue ON library.item_values USING btree (clean_value) WHERE (clean_value IS NOT NULL);
--
-- Name: idx_itemvalues_id_cleanvalue; Type: INDEX; Schema: library; Owner: jellyfin
--
CREATE INDEX idx_itemvalues_id_cleanvalue ON library.item_values USING btree (item_value_id, clean_value);
--
-- Name: idx_itemvalues_type_value_expr; Type: INDEX; Schema: library; Owner: jellyfin
--
CREATE INDEX idx_itemvalues_type_value_expr ON library.item_values USING btree ((((type)::text || value)));
--
-- Name: idx_itemvalues_value; Type: INDEX; Schema: library; Owner: jellyfin
--
CREATE INDEX idx_itemvalues_value ON library.item_values USING btree (value) WHERE (value IS NOT NULL);
--
-- Name: idx_itemvaluesmap_itemvalueid_itemid; Type: INDEX; Schema: library; Owner: jellyfin
--
CREATE INDEX idx_itemvaluesmap_itemvalueid_itemid ON library.item_values_map USING btree (item_value_id, item_id);
--
-- Name: mediastreaminfos_itemid_idx; Type: INDEX; Schema: library; Owner: jellyfin
--
CREATE INDEX mediastreaminfos_itemid_idx ON library.media_stream_infos USING btree (item_id, stream_type);
--
-- Name: peoplebaseitemmap_itemid_idx; Type: INDEX; Schema: library; Owner: jellyfin
--
CREATE INDEX peoplebaseitemmap_itemid_idx ON library.people_base_item_map USING btree (item_id, people_id);
--
-- Name: peoplebaseitemmap_peopleid_idx; Type: INDEX; Schema: library; Owner: jellyfin
--
CREATE INDEX peoplebaseitemmap_peopleid_idx ON library.people_base_item_map USING btree (people_id, item_id);
--
-- Name: IX_AccessSchedules_UserId; Type: INDEX; Schema: users; Owner: jellyfin
--
CREATE INDEX "IX_AccessSchedules_UserId" ON users.access_schedules USING btree (user_id);
--
-- Name: IX_Permissions_UserId_Kind; Type: INDEX; Schema: users; Owner: jellyfin
--
CREATE UNIQUE INDEX "IX_Permissions_UserId_Kind" ON users.permissions USING btree (user_id, kind) WHERE (user_id IS NOT NULL);
--
-- Name: IX_Preferences_UserId_Kind; Type: INDEX; Schema: users; Owner: jellyfin
--
CREATE UNIQUE INDEX "IX_Preferences_UserId_Kind" ON users.preferences USING btree (user_id, kind) WHERE (user_id IS NOT NULL);
--
-- Name: IX_Users_Username; Type: INDEX; Schema: users; Owner: jellyfin
--
CREATE UNIQUE INDEX "IX_Users_Username" ON users.users USING btree (username);
--
-- Name: devices FK_Devices_Users_UserId; Type: FK CONSTRAINT; Schema: authentication; Owner: jellyfin
--
ALTER TABLE ONLY authentication.devices
ADD CONSTRAINT "FK_Devices_Users_UserId" FOREIGN KEY (user_id) REFERENCES users.users(id) ON DELETE CASCADE;
--
-- Name: display_preferences FK_DisplayPreferences_Users_UserId; Type: FK CONSTRAINT; Schema: displaypreferences; Owner: jellyfin
--
ALTER TABLE ONLY displaypreferences.display_preferences
ADD CONSTRAINT "FK_DisplayPreferences_Users_UserId" FOREIGN KEY (user_id) REFERENCES users.users(id) ON DELETE CASCADE;
--
-- Name: home_sections FK_HomeSection_DisplayPreferences_DisplayPreferencesId; Type: FK CONSTRAINT; Schema: displaypreferences; Owner: jellyfin
--
ALTER TABLE ONLY displaypreferences.home_sections
ADD CONSTRAINT "FK_HomeSection_DisplayPreferences_DisplayPreferencesId" FOREIGN KEY (display_preferences_id) REFERENCES displaypreferences.display_preferences(id) ON DELETE CASCADE;
--
-- Name: item_display_preferences FK_ItemDisplayPreferences_Users_UserId; Type: FK CONSTRAINT; Schema: displaypreferences; Owner: jellyfin
--
ALTER TABLE ONLY displaypreferences.item_display_preferences
ADD CONSTRAINT "FK_ItemDisplayPreferences_Users_UserId" FOREIGN KEY (user_id) REFERENCES users.users(id) ON DELETE CASCADE;
--
-- Name: ancestor_ids FK_AncestorIds_BaseItems_ItemId; Type: FK CONSTRAINT; Schema: library; Owner: jellyfin
--
ALTER TABLE ONLY library.ancestor_ids
ADD CONSTRAINT "FK_AncestorIds_BaseItems_ItemId" FOREIGN KEY (item_id) REFERENCES library.base_items(id) ON DELETE CASCADE;
--
-- Name: ancestor_ids FK_AncestorIds_BaseItems_ParentItemId; Type: FK CONSTRAINT; Schema: library; Owner: jellyfin
--
ALTER TABLE ONLY library.ancestor_ids
ADD CONSTRAINT "FK_AncestorIds_BaseItems_ParentItemId" FOREIGN KEY (parent_item_id) REFERENCES library.base_items(id) ON DELETE CASCADE;
--
-- Name: attachment_stream_infos FK_AttachmentStreamInfos_BaseItems_ItemId; Type: FK CONSTRAINT; Schema: library; Owner: jellyfin
--
ALTER TABLE ONLY library.attachment_stream_infos
ADD CONSTRAINT "FK_AttachmentStreamInfos_BaseItems_ItemId" FOREIGN KEY (item_id) REFERENCES library.base_items(id) ON DELETE CASCADE;
--
-- Name: audio_stream_details FK_AudioStreamDetails_MediaStreamInfos_ItemId_StreamIndex; Type: FK CONSTRAINT; Schema: library; Owner: postgres
--
ALTER TABLE ONLY library.audio_stream_details
ADD CONSTRAINT "FK_AudioStreamDetails_MediaStreamInfos_ItemId_StreamIndex" FOREIGN KEY (item_id, stream_index) REFERENCES library.media_stream_infos(item_id, stream_index) ON DELETE CASCADE;
--
-- Name: base_item_audio_extras FK_BaseItemAudioExtras_BaseItems_ItemId; Type: FK CONSTRAINT; Schema: library; Owner: postgres
--
ALTER TABLE ONLY library.base_item_audio_extras
ADD CONSTRAINT "FK_BaseItemAudioExtras_BaseItems_ItemId" FOREIGN KEY (item_id) REFERENCES library.base_items(id) ON DELETE CASCADE;
--
-- Name: base_item_image_infos FK_BaseItemImageInfos_BaseItems_ItemId; Type: FK CONSTRAINT; Schema: library; Owner: jellyfin
--
ALTER TABLE ONLY library.base_item_image_infos
ADD CONSTRAINT "FK_BaseItemImageInfos_BaseItems_ItemId" FOREIGN KEY (item_id) REFERENCES library.base_items(id) ON DELETE CASCADE;
--
-- Name: base_item_live_tv_extras FK_BaseItemLiveTvExtras_BaseItems_ItemId; Type: FK CONSTRAINT; Schema: library; Owner: postgres
--
ALTER TABLE ONLY library.base_item_live_tv_extras
ADD CONSTRAINT "FK_BaseItemLiveTvExtras_BaseItems_ItemId" FOREIGN KEY (item_id) REFERENCES library.base_items(id) ON DELETE CASCADE;
--
-- Name: base_item_metadata_fields FK_BaseItemMetadataFields_BaseItems_ItemId; Type: FK CONSTRAINT; Schema: library; Owner: jellyfin
--
ALTER TABLE ONLY library.base_item_metadata_fields
ADD CONSTRAINT "FK_BaseItemMetadataFields_BaseItems_ItemId" FOREIGN KEY (item_id) REFERENCES library.base_items(id) ON DELETE CASCADE;
--
-- Name: base_item_providers FK_BaseItemProviders_BaseItems_ItemId; Type: FK CONSTRAINT; Schema: library; Owner: jellyfin
--
ALTER TABLE ONLY library.base_item_providers
ADD CONSTRAINT "FK_BaseItemProviders_BaseItems_ItemId" FOREIGN KEY (item_id) REFERENCES library.base_items(id) ON DELETE CASCADE;
--
-- Name: base_item_trailer_types FK_BaseItemTrailerTypes_BaseItems_ItemId; Type: FK CONSTRAINT; Schema: library; Owner: jellyfin
--
ALTER TABLE ONLY library.base_item_trailer_types
ADD CONSTRAINT "FK_BaseItemTrailerTypes_BaseItems_ItemId" FOREIGN KEY (item_id) REFERENCES library.base_items(id) ON DELETE CASCADE;
--
-- Name: base_item_tv_extras FK_BaseItemTvExtras_BaseItems_ItemId; Type: FK CONSTRAINT; Schema: library; Owner: postgres
--
ALTER TABLE ONLY library.base_item_tv_extras
ADD CONSTRAINT "FK_BaseItemTvExtras_BaseItems_ItemId" FOREIGN KEY (item_id) REFERENCES library.base_items(id) ON DELETE CASCADE;
--
-- Name: base_items FK_BaseItems_BaseItems_ParentId; Type: FK CONSTRAINT; Schema: library; Owner: jellyfin
--
ALTER TABLE ONLY library.base_items
ADD CONSTRAINT "FK_BaseItems_BaseItems_ParentId" FOREIGN KEY (parent_id) REFERENCES library.base_items(id) ON DELETE CASCADE;
--
-- Name: chapters FK_Chapters_BaseItems_ItemId; Type: FK CONSTRAINT; Schema: library; Owner: jellyfin
--
ALTER TABLE ONLY library.chapters
ADD CONSTRAINT "FK_Chapters_BaseItems_ItemId" FOREIGN KEY (item_id) REFERENCES library.base_items(id) ON DELETE CASCADE;
--
-- Name: image_infos FK_ImageInfos_Users_UserId; Type: FK CONSTRAINT; Schema: library; Owner: jellyfin
--
ALTER TABLE ONLY library.image_infos
ADD CONSTRAINT "FK_ImageInfos_Users_UserId" FOREIGN KEY (user_id) REFERENCES users.users(id) ON DELETE CASCADE;
--
-- Name: item_values_map FK_ItemValuesMap_BaseItems_ItemId; Type: FK CONSTRAINT; Schema: library; Owner: jellyfin
--
ALTER TABLE ONLY library.item_values_map
ADD CONSTRAINT "FK_ItemValuesMap_BaseItems_ItemId" FOREIGN KEY (item_id) REFERENCES library.base_items(id) ON DELETE CASCADE;
--
-- Name: item_values_map FK_ItemValuesMap_ItemValues_ItemValueId; Type: FK CONSTRAINT; Schema: library; Owner: jellyfin
--
ALTER TABLE ONLY library.item_values_map
ADD CONSTRAINT "FK_ItemValuesMap_ItemValues_ItemValueId" FOREIGN KEY (item_value_id) REFERENCES library.item_values(item_value_id) ON DELETE CASCADE;
--
-- Name: keyframe_data FK_KeyframeData_BaseItems_ItemId; Type: FK CONSTRAINT; Schema: library; Owner: jellyfin
--
ALTER TABLE ONLY library.keyframe_data
ADD CONSTRAINT "FK_KeyframeData_BaseItems_ItemId" FOREIGN KEY (item_id) REFERENCES library.base_items(id) ON DELETE CASCADE;
--
-- Name: media_stream_infos FK_MediaStreamInfos_BaseItems_ItemId; Type: FK CONSTRAINT; Schema: library; Owner: jellyfin
--
ALTER TABLE ONLY library.media_stream_infos
ADD CONSTRAINT "FK_MediaStreamInfos_BaseItems_ItemId" FOREIGN KEY (item_id) REFERENCES library.base_items(id) ON DELETE CASCADE;
--
-- Name: people_base_item_map FK_PeopleBaseItemMap_BaseItems_ItemId; Type: FK CONSTRAINT; Schema: library; Owner: jellyfin
--
ALTER TABLE ONLY library.people_base_item_map
ADD CONSTRAINT "FK_PeopleBaseItemMap_BaseItems_ItemId" FOREIGN KEY (item_id) REFERENCES library.base_items(id) ON DELETE CASCADE;
--
-- Name: people_base_item_map FK_PeopleBaseItemMap_Peoples_PeopleId; Type: FK CONSTRAINT; Schema: library; Owner: jellyfin
--
ALTER TABLE ONLY library.people_base_item_map
ADD CONSTRAINT "FK_PeopleBaseItemMap_Peoples_PeopleId" FOREIGN KEY (people_id) REFERENCES library.peoples(id) ON DELETE CASCADE;
--
-- Name: user_data FK_UserData_BaseItems_ItemId; Type: FK CONSTRAINT; Schema: library; Owner: jellyfin
--
ALTER TABLE ONLY library.user_data
ADD CONSTRAINT "FK_UserData_BaseItems_ItemId" FOREIGN KEY (item_id) REFERENCES library.base_items(id) ON DELETE CASCADE;
--
-- Name: user_data FK_UserData_Users_UserId; Type: FK CONSTRAINT; Schema: library; Owner: jellyfin
--
ALTER TABLE ONLY library.user_data
ADD CONSTRAINT "FK_UserData_Users_UserId" FOREIGN KEY (user_id) REFERENCES users.users(id) ON DELETE CASCADE;
--
-- Name: video_stream_details FK_VideoStreamDetails_MediaStreamInfos_ItemId_StreamIndex; Type: FK CONSTRAINT; Schema: library; Owner: postgres
--
ALTER TABLE ONLY library.video_stream_details
ADD CONSTRAINT "FK_VideoStreamDetails_MediaStreamInfos_ItemId_StreamIndex" FOREIGN KEY (item_id, stream_index) REFERENCES library.media_stream_infos(item_id, stream_index) ON DELETE CASCADE;
--
-- Name: access_schedules FK_AccessSchedules_Users_UserId; Type: FK CONSTRAINT; Schema: users; Owner: jellyfin
--
ALTER TABLE ONLY users.access_schedules
ADD CONSTRAINT "FK_AccessSchedules_Users_UserId" FOREIGN KEY (user_id) REFERENCES users.users(id) ON DELETE CASCADE;
--
-- Name: permissions FK_Permissions_Users_UserId; Type: FK CONSTRAINT; Schema: users; Owner: jellyfin
--
ALTER TABLE ONLY users.permissions
ADD CONSTRAINT "FK_Permissions_Users_UserId" FOREIGN KEY (user_id) REFERENCES users.users(id) ON DELETE CASCADE;
--
-- Name: preferences FK_Preferences_Users_UserId; Type: FK CONSTRAINT; Schema: users; Owner: jellyfin
--
ALTER TABLE ONLY users.preferences
ADD CONSTRAINT "FK_Preferences_Users_UserId" FOREIGN KEY (user_id) REFERENCES users.users(id) ON DELETE CASCADE;
--
-- PostgreSQL database dump complete
--
\unrestrict Vwcqwiq0T7Wa2mK8KvZhGZRaSeFcgOrgunEbjWSCbLeRLSwJLeXqBprmQroWe9O