~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to userdb/migrations/20090406-01.sql

  • Committer: mattgiuca
  • Date: 2008-07-15 07:19:34 UTC
  • Revision ID: svn-v3-trunk0:2b9c9e99-6f39-0410-b283-7f802c844ae2:trunk:875
Added "migrations" directory, which contains incremental database update
    scripts.
Updated users.sql, uniqueness key on offering table.
Added migration matching this update to the migrations directory. Mm handy!

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
BEGIN;
2
 
 
3
 
ALTER TABLE project_set ALTER COLUMN max_students_per_group DROP NOT NULL;
4
 
ALTER TABLE project_set ALTER COLUMN max_students_per_group DROP DEFAULT;
5
 
 
6
 
ALTER TABLE project ALTER COLUMN synopsis TYPE TEXT;
7
 
ALTER TABLE project ALTER COLUMN url TYPE TEXT;
8
 
ALTER TABLE project ADD COLUMN short_name TEXT NOT NULL;
9
 
ALTER TABLE project ADD COLUMN name TEXT NOT NULL;
10
 
 
11
 
CREATE OR REPLACE FUNCTION check_project_namespacing_insertupdate()
12
 
RETURNS trigger AS '
13
 
    DECLARE
14
 
        oid INTEGER;
15
 
    BEGIN
16
 
        IF TG_OP = ''UPDATE'' THEN
17
 
            IF NEW.projectsetid = OLD.projectsetid AND NEW.short_name = OLD.short_name THEN
18
 
                RETURN NEW;
19
 
            END IF;
20
 
        END IF;
21
 
        SELECT offeringid INTO oid FROM project_set WHERE project_set.projectsetid = NEW.projectsetid;
22
 
        PERFORM 1 FROM project, project_set
23
 
        WHERE project_set.offeringid = oid AND
24
 
              project.projectsetid = project_set.projectsetid AND
25
 
              project.short_name = NEW.short_name;
26
 
        IF found THEN
27
 
            RAISE EXCEPTION ''a project named % already exists in offering ID %'', NEW.short_name, oid;
28
 
        END IF;
29
 
        RETURN NEW;
30
 
    END;
31
 
' LANGUAGE 'plpgsql';
32
 
 
33
 
CREATE TRIGGER check_project_namespacing
34
 
    BEFORE INSERT OR UPDATE ON project
35
 
    FOR EACH ROW EXECUTE PROCEDURE check_project_namespacing_insertupdate();
36
 
 
37
 
ALTER TABLE project_extension ADD COLUMN extensionid SERIAL PRIMARY KEY;
38
 
 
39
 
ALTER TABLE project_submission ADD COLUMN submissionid SERIAL PRIMARY KEY;
40
 
ALTER TABLE project_submission ADD COLUMN date_submitted TIMESTAMP NOT NULL;
41
 
ALTER TABLE project_submission ADD COLUMN submitter INT4 REFERENCES login (loginid) NOT NULL;
42
 
 
43
 
COMMIT;