sintonia/install_minimal/upgrades/airtime-2.2.0/data/upgrade.sql

173 lines
5.4 KiB
SQL

DELETE FROM cc_pref WHERE keystr = 'system_version';
INSERT INTO cc_pref (keystr, valstr) VALUES ('system_version', '2.2.0');
INSERT INTO cc_stream_setting (keyname, value, type) VALUES ('s1_name', 'Airtime!', 'string');
INSERT INTO cc_stream_setting (keyname, value, type) VALUES ('s2_name', '', 'string');
INSERT INTO cc_stream_setting (keyname, value, type) VALUES ('s3_name', '', 'string');
INSERT INTO cc_stream_setting (keyname, value, type) VALUES ('s1_channels', 'stereo', 'string');
INSERT INTO cc_stream_setting (keyname, value, type) VALUES ('s2_channels', 'stereo', 'string');
INSERT INTO cc_stream_setting (keyname, value, type) VALUES ('s3_channels', 'stereo', 'string');
ALTER TABLE cc_files
DROP CONSTRAINT cc_files_gunid_idx;
DROP TABLE cc_access;
DROP SEQUENCE cc_access_id_seq;
CREATE FUNCTION airtime_to_int(chartoconvert character varying) RETURNS integer
AS
'SELECT CASE WHEN trim($1) SIMILAR TO ''[0-9]+'' THEN CAST(trim($1) AS integer) ELSE NULL END;'
LANGUAGE SQL
IMMUTABLE
RETURNS NULL ON NULL INPUT;
CREATE SEQUENCE cc_block_id_seq
START WITH 1
INCREMENT BY 1
NO MAXVALUE
NO MINVALUE
CACHE 1;
CREATE SEQUENCE cc_blockcontents_id_seq
START WITH 1
INCREMENT BY 1
NO MAXVALUE
NO MINVALUE
CACHE 1;
CREATE SEQUENCE cc_blockcriteria_id_seq
START WITH 1
INCREMENT BY 1
NO MAXVALUE
NO MINVALUE
CACHE 1;
CREATE SEQUENCE cc_webstream_id_seq
START WITH 1
INCREMENT BY 1
NO MAXVALUE
NO MINVALUE
CACHE 1;
CREATE SEQUENCE cc_webstream_metadata_id_seq
START WITH 1
INCREMENT BY 1
NO MAXVALUE
NO MINVALUE
CACHE 1;
CREATE TABLE cc_block (
id integer DEFAULT nextval('cc_block_id_seq'::regclass) NOT NULL,
name character varying(255) DEFAULT ''::character varying NOT NULL,
mtime timestamp(6) without time zone,
utime timestamp(6) without time zone,
creator_id integer,
description character varying(512),
length interval DEFAULT '00:00:00'::interval,
type character varying(7) DEFAULT 'static'::character varying
);
CREATE TABLE cc_blockcontents (
id integer DEFAULT nextval('cc_blockcontents_id_seq'::regclass) NOT NULL,
block_id integer,
file_id integer,
"position" integer,
cliplength interval DEFAULT '00:00:00'::interval,
cuein interval DEFAULT '00:00:00'::interval,
cueout interval DEFAULT '00:00:00'::interval,
fadein time without time zone DEFAULT '00:00:00'::time without time zone,
fadeout time without time zone DEFAULT '00:00:00'::time without time zone
);
CREATE TABLE cc_blockcriteria (
id integer DEFAULT nextval('cc_blockcriteria_id_seq'::regclass) NOT NULL,
criteria character varying(32) NOT NULL,
modifier character varying(16) NOT NULL,
"value" character varying(512) NOT NULL,
extra character varying(512),
block_id integer NOT NULL
);
CREATE TABLE cc_webstream (
id integer DEFAULT nextval('cc_webstream_id_seq'::regclass) NOT NULL,
name character varying(255) NOT NULL,
description character varying(255) NOT NULL,
url character varying(512) NOT NULL,
length interval DEFAULT '00:00:00'::interval NOT NULL,
creator_id integer NOT NULL,
mtime timestamp(6) without time zone NOT NULL,
utime timestamp(6) without time zone NOT NULL,
mime character varying(255)
);
CREATE TABLE cc_webstream_metadata (
id integer DEFAULT nextval('cc_webstream_metadata_id_seq'::regclass) NOT NULL,
instance_id integer NOT NULL,
start_time timestamp without time zone NOT NULL,
liquidsoap_data character varying(1024) NOT NULL
);
ALTER TABLE cc_files
DROP COLUMN gunid,
ADD COLUMN replay_gain character varying(16),
ADD COLUMN owner_id integer;
ALTER COLUMN bpm TYPE integer using airtime_to_int(bpm) /* TYPE change - table: cc_files original: character varying(8) new: integer */;
ALTER TABLE cc_playlistcontents
ADD COLUMN block_id integer,
ADD COLUMN stream_id integer,
ADD COLUMN type smallint DEFAULT 0 NOT NULL;
ALTER TABLE cc_schedule
ADD COLUMN stream_id integer;
ALTER TABLE cc_subjs
ADD COLUMN cell_phone character varying(255);
ALTER TABLE cc_block
ADD CONSTRAINT cc_block_pkey PRIMARY KEY (id);
ALTER TABLE cc_blockcontents
ADD CONSTRAINT cc_blockcontents_pkey PRIMARY KEY (id);
ALTER TABLE cc_blockcriteria
ADD CONSTRAINT cc_blockcriteria_pkey PRIMARY KEY (id);
ALTER TABLE cc_webstream
ADD CONSTRAINT cc_webstream_pkey PRIMARY KEY (id);
ALTER TABLE cc_webstream_metadata
ADD CONSTRAINT cc_webstream_metadata_pkey PRIMARY KEY (id);
ALTER TABLE cc_block
ADD CONSTRAINT cc_block_createdby_fkey FOREIGN KEY (creator_id) REFERENCES cc_subjs(id);
ALTER TABLE cc_blockcontents
ADD CONSTRAINT cc_blockcontents_block_id_fkey FOREIGN KEY (block_id) REFERENCES cc_block(id) ON DELETE CASCADE;
ALTER TABLE cc_blockcontents
ADD CONSTRAINT cc_blockcontents_file_id_fkey FOREIGN KEY (file_id) REFERENCES cc_files(id) ON DELETE CASCADE;
ALTER TABLE cc_blockcriteria
ADD CONSTRAINT cc_blockcontents_block_id_fkey FOREIGN KEY (block_id) REFERENCES cc_block(id) ON DELETE CASCADE;
ALTER TABLE cc_playlistcontents
ADD CONSTRAINT cc_playlistcontents_block_id_fkey FOREIGN KEY (block_id) REFERENCES cc_block(id) ON DELETE CASCADE;
ALTER TABLE cc_schedule
ADD CONSTRAINT cc_show_stream_fkey FOREIGN KEY (stream_id) REFERENCES cc_webstream(id) ON DELETE CASCADE;
ALTER TABLE cc_webstream_metadata
ADD CONSTRAINT cc_schedule_inst_fkey FOREIGN KEY (instance_id) REFERENCES cc_schedule(id) ON DELETE CASCADE;
DROP FUNCTION airtime_to_int(chartoconvert character varying);
UPDATE cc_files
SET owner_id=(SELECT id FROM cc_subjs WHERE type='A' LIMIT 1)
WHERE owner_id is NULL