HEX
Server: Apache/2.2.34 (Unix) mod_fastcgi/mod_fastcgi-SNAP-0910052141
System: Linux Kou-Etsu-Dou 4.4.59+ #25556 SMP PREEMPT Thu Mar 4 18:03:46 CST 2021 x86_64
User: hosam (1026)
PHP: 7.2.29
Disabled: NONE
Upload Files
File: //usr/syno/synoindex/sql/mediaserver.pgsql
BEGIN;

CREATE TABLE music
(
  id serial NOT NULL,
  path text NOT NULL,
  title text NOT NULL,
  filesize int8 NOT NULL DEFAULT 0,
  album text,
  artist text,
  album_artist text,
  composer text,
  comment text,
  year int4,
  genre varchar(128),
  frequency int4,
  bitrate int4,
  duration int4,
  channel int4,
  track int4,
  disc int4,
  covercount int4,
  date timestamp,
  mdate timestamp,
  fs_uuid text,
  fs_online boolean DEFAULT TRUE,
  CONSTRAINT music_pkey PRIMARY KEY (id)
)
WITHOUT OIDS;
CREATE INDEX music_album_idx ON music USING btree (album);
CREATE INDEX music_artist_idx ON music USING btree (artist);
CREATE INDEX music_album_artist_idx ON music USING btree (album_artist);
CREATE INDEX music_year_idx ON music USING btree ("year" int4_ops);
CREATE INDEX music_disc_idx ON music USING btree (disc int4_ops);
CREATE INDEX music_track_idx ON music USING btree (track int4_ops);
CREATE INDEX music_genre_idx ON music USING btree (genre);
CREATE INDEX music_composer_idx ON music USING btree (composer);
CREATE INDEX music_title_idx ON music USING btree (title);
CREATE INDEX music_date_idx ON music USING btree (date);
CREATE INDEX music_mdate_idx ON music USING btree (mdate);
CREATE UNIQUE INDEX music_path_idx ON music USING btree (path);

CREATE TABLE playlist
(
  id serial NOT NULL,
  path text NOT NULL,
  title text NOT NULL,
  filesize int8 NOT NULL DEFAULT 0,
  album text,
  song_count int4 NOT NULL DEFAULT 0,
  date timestamp,
  mdate timestamp,
  fs_uuid text,
  fs_online boolean DEFAULT TRUE,
  CONSTRAINT playlist_pkey PRIMARY KEY (id)
)
WITHOUT OIDS;
CREATE UNIQUE INDEX playlist_path_idx ON playlist USING btree (path);

CREATE TABLE photo
(
  id serial NOT NULL,
  path text NOT NULL,
  title text NOT NULL,
  filesize int8 NOT NULL DEFAULT 0,
  album text,
  resolutionx int4,
  resolutiony int4,
  camera_make varchar(100),
  camera_model varchar(100),
  exposure varchar(20),
  aperture varchar(20),
  iso int4,
  date timestamp,
  timetaken timestamp,
  mdate timestamp,
  fs_uuid text,
  fs_online boolean DEFAULT TRUE,
  CONSTRAINT photo_pkey PRIMARY KEY (id)
)
WITHOUT OIDS;
CREATE INDEX photo_title_idx ON photo USING btree (title);
CREATE INDEX photo_date_idx ON photo USING btree (date);
CREATE INDEX photo_timetaken_idx ON photo USING btree (timetaken);
CREATE INDEX photo_mdate_idx ON photo USING btree (mdate);
CREATE UNIQUE INDEX photo_path_idx ON photo USING btree (path);

CREATE TABLE video
(
  id serial NOT NULL,
  path text NOT NULL,
  title text NOT NULL,
  filesize int8 NOT NULL DEFAULT 0,
  album text,
  container_type text NOT NULL,
  video_codec text,
  frame_bitrate int4,
  frame_rate_num int4,
  frame_rate_den int4,
  video_bitrate int4,
  video_profile int4,
  video_level int4,
  resolutionX int4,
  resolutionY int4,
  audio_codec text,
  audio_bitrate int4,
  frequency int4,
  channel int4,
  duration int4,
  date timestamp,
  mdate timestamp,
  fs_uuid text,
  fs_online boolean DEFAULT TRUE,
  CONSTRAINT video_pkey PRIMARY KEY (id)
)
WITHOUT OIDS;
CREATE INDEX video_title_idx ON video USING btree (title);
CREATE INDEX video_date_idx ON video USING btree (date);
CREATE INDEX video_mdate_idx ON video USING btree (mdate);
CREATE UNIQUE INDEX video_path_idx ON video USING btree (path);

CREATE TABLE directory
(
  id serial NOT NULL,
  path text NOT NULL,
  title text,
  date timestamp,
  mdate timestamp,
  fs_uuid text,
  fs_online boolean DEFAULT TRUE,
  CONSTRAINT directory_pkey PRIMARY KEY (id),
  CONSTRAINT directory_path_key UNIQUE (path)
)
WITHOUT OIDS;
CREATE UNIQUE INDEX directory_path_idx ON directory USING btree (path);

CREATE TABLE video_convert (
 video_path text NOT NULL,
 convert_file_path text NOT NULL,
 resolutionx int4 DEFAULT NULL,
 resolutiony int4 DEFAULT NULL,
 container_type text NOT NULL,
 video_bitrate int4 DEFAULT NULL,
 vcodec text DEFAULT NULL,
 video_profile int4 DEFAULT NULL,
 video_level int4 DEFAULT NULL,
 acodec text DEFAULT NULL,
 audio_bitrate int4 DEFAULT NULL,
 audio_frequency int4 DEFAULT NULL,
 audio_channel int4 DEFAULT NULL,
 convert_type text NOT NULL,
 fs_online boolean DEFAULT TRUE,
 CONSTRAINT video_convert_pkey PRIMARY KEY (convert_file_path),
 CONSTRAINT video_convert_fk1 FOREIGN KEY (video_path) REFERENCES video (path) ON DELETE CASCADE ON UPDATE CASCADE
)
WITHOUT OIDS;
CREATE INDEX video_convert_convert_type_idx ON video_convert USING btree (convert_type);
CREATE INDEX video_convert_video_path_idx ON video_convert USING btree (video_path);

CREATE TABLE virtual_music (
    id serial NOT NULL,
	path text NOT NULL DEFAULT '',
	title text DEFAULT '',
	album text DEFAULT '',
	artist text DEFAULT '',
	album_artist text DEFAULT '',
	composer text DEFAULT '',
	year int4,
	genre varchar(128),
    comment text NOT NULL,
	duration int NOT NULL,
	track int NOT NULL,
    CONSTRAINT virtual_music_pkey PRIMARY KEY (id),
	CONSTRAINT virtual_music_ukey UNIQUE (comment, track)
)
WITHOUT OIDS;

CREATE TABLE personal_playlist
(
  userid int8 NOT NULL,
  id serial NOT NULL,
  path text NOT NULL,
  title text NOT NULL,
  filesize int8 NOT NULL DEFAULT 0,
  album text,
  song_count int4 NOT NULL DEFAULT 0,
  date timestamp,
  mdate timestamp,
  fs_uuid text,
  fs_online boolean DEFAULT TRUE,
  updated character DEFAULT '1',
  CONSTRAINT personal_playlist_pkey PRIMARY KEY (id)
)
WITHOUT OIDS;
CREATE UNIQUE INDEX personal_playlist_path_idx ON personal_playlist USING btree (path);

CREATE TABLE personal_directory
(
  userid int8 NOT NULL,
  id serial NOT NULL,
  path text NOT NULL,
  title text,
  date timestamp,
  mdate timestamp,
  fs_uuid text,
  fs_online boolean DEFAULT TRUE,
  updated character DEFAULT '1',
  CONSTRAINT personal_directory_pkey PRIMARY KEY (id),
  CONSTRAINT personal_directory_path_key UNIQUE (path)
)
WITHOUT OIDS;
CREATE UNIQUE INDEX personal_directory_path_idx ON personal_directory USING btree (path);

CREATE TABLE track
(
  userid int8,
  id serial NOT NULL,
  path text NOT NULL,
  title text NOT NULL,
  title_sort text NOT NULL,
  title_search text NOT NULL,
  agg_genre text,
  agg_genre_sort text,
  agg_genre_search text,
  filesize int8 DEFAULT 0,
  year int4,
  frequency int4,
  channel int4,
  bitrate int4,
  duration float4,
  comment text,
  track int4,
  disc int4,
  container text,
  codec text,
  is_virtual boolean DEFAULT FALSE,
  has_virtual boolean DEFAULT FALSE,
  covercount int4,
  date timestamp,
  mdate timestamp,
  
  CONSTRAINT track_pkey PRIMARY KEY (id)
)
WITHOUT OIDS;
CREATE INDEX track_title_idx ON track USING btree (title);
CREATE INDEX track_title_sort_idx ON track USING btree (title_sort);
CREATE INDEX track_title_search_idx ON track USING btree (title_search);
CREATE INDEX track_agg_genre_idx ON track USING btree (agg_genre);
CREATE INDEX track_agg_genre_sort_idx ON track USING btree (agg_genre_sort);
CREATE INDEX track_agg_genre_search_idx ON track USING btree (agg_genre_search);
CREATE INDEX track_year_idx ON track USING btree (year int4_ops);
CREATE INDEX track_track_idx ON track USING btree (track int4_ops);
CREATE INDEX track_disc_idx ON track USING btree (disc int4_ops);
CREATE INDEX track_container_idx ON track USING btree (container);
CREATE INDEX track_codec_idx ON track USING btree (codec);
CREATE INDEX track_is_virtual_idx ON track USING btree (is_virtual);
CREATE INDEX track_has_virtual_idx ON track USING btree (has_virtual);
CREATE INDEX track_date_idx ON track USING btree (date);
CREATE INDEX track_mdate_idx ON track USING btree (mdate);
CREATE UNIQUE INDEX track_path_is_virtual_track_idx ON track USING btree (path, is_virtual, track);

CREATE TABLE genre_track
(
  track int4 NOT NULL,
  genre text NOT NULL,
  genre_sort text NOT NULL,
  genre_search text NOT NULL,
  
  CONSTRAINT genre_track_pkey PRIMARY KEY (track, genre),
  CONSTRAINT genre_track_fkey FOREIGN KEY (track)
      REFERENCES track (id) MATCH SIMPLE
	  ON UPDATE CASCADE ON DELETE CASCADE
)
WITHOUT OIDS;
CREATE INDEX genre_track_track_idx ON genre_track USING btree (track int4_ops);
CREATE INDEX genre_track_genre_idx ON genre_track USING btree (genre);
CREATE INDEX genre_track_genre_sort_idx ON genre_track USING btree (genre_sort);
CREATE INDEX genre_track_genre_search_idx ON genre_track USING btree (genre_search);
CREATE UNIQUE INDEX genre_track_track_genre_idx ON genre_track USING btree (track, genre);

CREATE TABLE composer_track
(
  track int4 NOT NULL,
  composer text NOT NULL,
  composer_sort text NOT NULL,
  composer_search text NOT NULL,
  
  CONSTRAINT composer_track_pkey PRIMARY KEY (track, composer),
  CONSTRAINT composer_track_fkey FOREIGN KEY (track)
      REFERENCES track (id) MATCH SIMPLE
	  ON UPDATE CASCADE ON DELETE CASCADE
)
WITHOUT OIDS;
CREATE INDEX composer_track_track_idx ON composer_track USING btree (track int4_ops);
CREATE INDEX composer_track_composer_idx ON composer_track USING btree (composer);
CREATE INDEX composer_track_composer_sort_idx ON composer_track USING btree (composer_sort);
CREATE INDEX composer_track_composer_search_idx ON composer_track USING btree (composer_search);
CREATE UNIQUE INDEX composer_track_track_composer_idx ON composer_track USING btree (track, composer);

CREATE TABLE artist_track
(
  track int4 NOT NULL,
  artist text NOT NULL,
  artist_sort text NOT NULL,
  artist_search text NOT NULL,
  has_album_artist boolean DEFAULT FALSE,
  
  CONSTRAINT artist_track_pkey PRIMARY KEY (track, artist),
  CONSTRAINT artist_track_fkey FOREIGN KEY (track)
      REFERENCES track (id) MATCH SIMPLE
	  ON UPDATE CASCADE ON DELETE CASCADE
)
WITHOUT OIDS;
CREATE INDEX artist_track_track_idx ON artist_track USING btree (track int4_ops);
CREATE INDEX artist_track_artist_idx ON artist_track USING btree (artist);
CREATE INDEX artist_track_artist_sort_idx ON artist_track USING btree (artist_sort);
CREATE INDEX artist_track_artist_search_idx ON artist_track USING btree (artist_search);
CREATE UNIQUE INDEX artist_track_track_artist_idx ON artist_track USING btree (track, artist);

CREATE TABLE album_track
(
  track int4 NOT NULL,
  album text NOT NULL,
  album_sort text NOT NULL,
  album_search text NOT NULL,
  album_artist text,
  album_artist_sort text,
  album_artist_search text,
  from_album_artist boolean DEFAULT FALSE,
  
  CONSTRAINT album_track_pkey PRIMARY KEY (track, album, album_artist),
  CONSTRAINT album_track_fkey FOREIGN KEY (track)
      REFERENCES track (id) MATCH SIMPLE
	  ON UPDATE CASCADE ON DELETE CASCADE
)
WITHOUT OIDS;
CREATE INDEX album_track_track_idx ON album_track USING btree (track int4_ops);
CREATE INDEX album_track_album_idx ON album_track USING btree (album);
CREATE INDEX album_track_album_sort_idx ON album_track USING btree (album_sort);
CREATE INDEX album_track_album_search_idx ON album_track USING btree (album_search);
CREATE INDEX album_track_album_artist_idx ON album_track USING btree (album_artist);
CREATE INDEX album_track_album_artist_sort_idx ON album_track USING btree (album_artist_sort);
CREATE INDEX album_track_album_artist_search_idx ON album_track USING btree (album_artist_search);
CREATE UNIQUE INDEX album_track_track_album_album_artist_idx ON album_track USING btree (track, album, album_artist);

CREATE TABLE virtual_info_track
(
	track int4 NOT NULL,
	audio_offset text NOT NULL DEFAULT '',
	cue_sheet_path text NOT NULL DEFAULT '',
    CONSTRAINT virtual_info_track_pkey PRIMARY KEY (track),
	CONSTRAINT virtual_info_track_fkey FOREIGN KEY (track)
      REFERENCES track (id) MATCH SIMPLE
	  ON UPDATE CASCADE ON DELETE CASCADE
)
WITHOUT OIDS;
CREATE INDEX virtual_info_track_track_idx ON virtual_info_track USING btree (track int4_ops);
CREATE INDEX virtual_info_track_cue_sheet_path_idx ON virtual_info_track USING btree (cue_sheet_path);
CREATE UNIQUE INDEX virtual_info_track_audio_offset_cue_sheet_path_idx ON virtual_info_track USING btree (track);

CREATE TABLE rating_track
(
  userid int8,
  track int4 NOT NULL,
  star int4 NOT NULL DEFAULT 0,
  
  CONSTRAINT rating_track_pkey PRIMARY KEY (userid, track),
  CONSTRAINT rating_track_fkey FOREIGN KEY (track)
      REFERENCES track (id) MATCH SIMPLE
	  ON UPDATE CASCADE ON DELETE CASCADE
)
WITHOUT OIDS;
CREATE INDEX rating_track_track_idx ON rating_track USING btree (track int4_ops);
CREATE INDEX rating_track_star_idx ON rating_track USING btree (star int4_ops);
CREATE UNIQUE INDEX rating_track_userid_track_idx ON rating_track USING btree (userid, track);

CREATE TABLE playcount_track
(
  userid int8,
  track int4 NOT NULL,
  count int8 DEFAULT 0,
  mdate timestamp,
  
  CONSTRAINT playcount_track_pkey PRIMARY KEY (userid, track),
  CONSTRAINT playcount_track_fkey FOREIGN KEY (track)
      REFERENCES track (id) MATCH SIMPLE
	  ON UPDATE CASCADE ON DELETE CASCADE
)
WITHOUT OIDS;
CREATE INDEX playcount_track_track_idx ON playcount_track USING btree (track int4_ops);
CREATE INDEX playcount_track_count_idx ON playcount_track USING btree (count int8_ops);
CREATE INDEX playcount_track_mdate_idx ON playcount_track USING btree (mdate);
CREATE UNIQUE INDEX playcount_track_userid_track_idx ON playcount_track USING btree (userid, track);

CREATE TABLE replaygain_track
(
  track int4 NOT NULL,
  rg_track_gain float4,
  rg_track_peak float4,
  rg_album_gain float4,
  rg_album_peak float4,
  
  CONSTRAINT replaygain_track_pkey PRIMARY KEY (track),
  CONSTRAINT replaygain_track_fkey FOREIGN KEY (track)
      REFERENCES track (id) MATCH SIMPLE
	  ON UPDATE CASCADE ON DELETE CASCADE
)
WITHOUT OIDS;
CREATE UNIQUE INDEX replaygain_track_track_idx ON replaygain_track USING btree (track);

COMMIT;