source: contrib/davical/dba/patches/1.2.3.sql @ 3733

Revision 3733, 4.0 KB checked in by gabriel.malheiros, 13 years ago (diff)

Ticket #1541 - <Davical customizado para o Expresso.Utiliza Caldav e CardDav?>

Line 
1
2-- Add some more cascading updates and deletes.
3-- For databases created before PostgreSQL 8.0.
4
5-- I screwed up with version 0.9.6.1 and 0.9.6.2 in that the davical.sql
6-- file specified them as version 1.2.2 when in reality they were version
7-- 1.2.4 so we are going to clean that up here...
8
9CREATE TEMP TABLE db_version_check AS SELECT * FROM awl_db_revision;
10DELETE FROM db_version_check WHERE ((schema_major * 1000000) + (schema_minor * 1000) + schema_patch) < 1002002;
11INSERT INTO db_version_check (schema_id, schema_major, schema_minor, schema_patch, schema_name, applied_on )
12   SELECT (SELECT max(schema_id) + 1 FROM awl_db_revision WHERE ((schema_major * 1000000) + (schema_minor * 1000) + schema_patch) <= 1002002),
13            1, 2, 4, 'Avril', current_timestamp FROM pg_class JOIN pg_attribute ON (pg_class.oid = pg_attribute.attrelid)
14      WHERE pg_class.relname = 'calendar_item' AND attname = 'completed';
15DELETE FROM db_version_check
16       WHERE EXISTS( SELECT 1 FROM db_version_check
17                             WHERE schema_major < db_version_check.schema_major
18                                  OR (schema_major = db_version_check.schema_major AND schema_minor < db_version_check.schema_minor )
19                                  OR (schema_major = db_version_check.schema_major AND schema_minor = db_version_check.schema_minor AND schema_patch < db_version_check.schema_patch) );
20
21INSERT INTO awl_db_revision
22    SELECT * FROM db_version_check WHERE schema_major=1 AND schema_minor=2 AND schema_patch=4;
23
24BEGIN;
25SELECT check_db_revision(1,2,2);
26
27ALTER TABLE role_member DROP CONSTRAINT "$1";
28ALTER TABLE role_member ADD CONSTRAINT "role_member_role_no_fkey" FOREIGN KEY (role_no) REFERENCES roles(role_no) ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE;
29ALTER TABLE role_member DROP CONSTRAINT "$2";
30ALTER TABLE role_member ADD CONSTRAINT "role_member_user_no_fkey" FOREIGN KEY (user_no) REFERENCES usr(user_no) ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE;
31
32ALTER TABLE session DROP CONSTRAINT "$1";
33ALTER TABLE session ADD CONSTRAINT "session_user_no_fkey" FOREIGN KEY (user_no) REFERENCES usr(user_no) ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE;
34
35ALTER TABLE relationship DROP CONSTRAINT "$1";
36ALTER TABLE relationship ADD CONSTRAINT "relationship_from_user_fkey" FOREIGN KEY (from_user) REFERENCES usr(user_no) ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE;
37ALTER TABLE relationship DROP CONSTRAINT "$2";
38ALTER TABLE relationship ADD CONSTRAINT "relationship_to_user_fkey" FOREIGN KEY (to_user) REFERENCES usr(user_no) ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE;
39
40ALTER TABLE usr_setting DROP CONSTRAINT "$1";
41ALTER TABLE usr_setting ADD CONSTRAINT "usr_setting_user_no_fkey" FOREIGN KEY (user_no) REFERENCES usr(user_no) ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE;
42
43ALTER TABLE tmp_password DROP CONSTRAINT "$1";
44ALTER TABLE tmp_password ADD CONSTRAINT "tmp_password_user_no_fkey" FOREIGN KEY (user_no) REFERENCES usr(user_no) ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE;
45
46ALTER TABLE caldav_data DROP CONSTRAINT "$1";
47ALTER TABLE caldav_data ADD CONSTRAINT "caldav_data_user_no_fkey" FOREIGN KEY (user_no) REFERENCES usr(user_no) ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE;
48ALTER TABLE caldav_data DROP CONSTRAINT "$2";
49ALTER TABLE caldav_data ADD CONSTRAINT "caldav_data_logged_user_fkey" FOREIGN KEY (logged_user) REFERENCES usr(user_no) ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE;
50
51ALTER TABLE property DROP CONSTRAINT "$1";
52ALTER TABLE property ADD CONSTRAINT "property_changed_by_fkey" FOREIGN KEY (changed_by) REFERENCES usr(user_no) ON UPDATE CASCADE;
53
54ALTER TABLE calendar_item DROP CONSTRAINT "$1";
55ALTER TABLE calendar_item ADD CONSTRAINT "calendar_item_user_no_fkey" FOREIGN KEY (user_no) REFERENCES usr(user_no) ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE;
56ALTER TABLE calendar_item DROP CONSTRAINT "$2";
57ALTER TABLE calendar_item ADD CONSTRAINT "calendar_item_tz_id_fkey" FOREIGN KEY (tz_id) REFERENCES time_zone(tz_id) ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE;
58
59SELECT new_db_revision(1,2,3, 'Mars' );
60COMMIT;
61ROLLBACK;
62
Note: See TracBrowser for help on using the repository browser.