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

« back to all changes in this revision

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

  • Committer: William Grant
  • Date: 2009-02-23 23:47:02 UTC
  • mfrom: (1099.1.211 new-dispatch)
  • Revision ID: grantw@unimelb.edu.au-20090223234702-db4b1llly46ignwo
Merge from lp:~ivle-dev/ivle/new-dispatch.

Pretty much everything changes. Reread the setup docs. Backup your databases.
Every file is now in a different installed location, the configuration system
is rewritten, the dispatch system is rewritten, URLs are different, the
database is different, worksheets and exercises are no longer on the
filesystem, we use a templating engine, jail service protocols are rewritten,
we don't repeat ourselves, we have authorization rewritten, phpBB is gone,
and probably lots of other things that I cannot remember.

This is certainly the biggest commit I have ever made, and hopefully
the largest I ever will.

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;