[1201] | 1 | -- |
---|
| 2 | -- PyKota - Print Quotas for CUPS and LPRng |
---|
| 3 | -- |
---|
[1257] | 4 | -- (c) 2003-2004 Jerome Alet <alet@librelogiciel.com> |
---|
[1201] | 5 | -- This program is free software; you can redistribute it and/or modify |
---|
| 6 | -- it under the terms of the GNU General Public License as published by |
---|
| 7 | -- the Free Software Foundation; either version 2 of the License, or |
---|
| 8 | -- (at your option) any later version. |
---|
| 9 | -- |
---|
| 10 | -- This program is distributed in the hope that it will be useful, |
---|
| 11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of |
---|
| 12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
---|
| 13 | -- GNU General Public License for more details. |
---|
| 14 | -- |
---|
| 15 | -- You should have received a copy of the GNU General Public License |
---|
| 16 | -- along with this program; if not, write to the Free Software |
---|
| 17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. |
---|
| 18 | -- |
---|
| 19 | -- $Id$ |
---|
| 20 | -- |
---|
[1257] | 21 | -- |
---|
[1240] | 22 | -- |
---|
[1201] | 23 | -- This script has to be used if you already |
---|
| 24 | -- have a pre-1.16 version of PyKota to upgrade |
---|
| 25 | -- your database schema. |
---|
| 26 | -- |
---|
| 27 | -- YOU DON'T NEED TO USE IT IF YOU'VE JUST INSTALLED PYKOTA |
---|
| 28 | -- |
---|
| 29 | |
---|
| 30 | -- |
---|
| 31 | -- WARNING : YOU NEED A RECENT VERSION OF POSTGRESQL FOR THE ALTER COLUMN STATEMENT TO WORK ! |
---|
| 32 | -- |
---|
| 33 | |
---|
| 34 | -- |
---|
| 35 | -- Modify the old database schema |
---|
| 36 | -- |
---|
[1203] | 37 | ALTER TABLE jobhistory ADD COLUMN jobprice FLOAT; |
---|
[1201] | 38 | ALTER TABLE jobhistory ADD COLUMN filename TEXT; |
---|
| 39 | ALTER TABLE jobhistory ADD COLUMN title TEXT; |
---|
| 40 | ALTER TABLE jobhistory ADD COLUMN copies INT4; |
---|
| 41 | ALTER TABLE jobhistory ADD COLUMN options TEXT; |
---|
| 42 | |
---|
[1240] | 43 | -- |
---|
| 44 | -- Remove bad integrity rules |
---|
| 45 | -- and replace them with a new one |
---|
| 46 | -- |
---|
| 47 | ALTER TABLE jobhistory DROP CONSTRAINT "$1"; |
---|
| 48 | ALTER TABLE jobhistory DROP CONSTRAINT "$2"; |
---|
| 49 | ALTER TABLE jobhistory ADD CONSTRAINT checkUserPQuota FOREIGN KEY (userid, printerid) REFERENCES userpquota (userid, printerid); |
---|
| 50 | |
---|
| 51 | -- |
---|
| 52 | -- Add new tables |
---|
| 53 | -- |
---|
[1201] | 54 | -- |
---|
[1240] | 55 | -- Create the printer groups relationship |
---|
| 56 | -- |
---|
| 57 | CREATE TABLE printergroupsmembers(groupid INT4 REFERENCES printers(id), |
---|
| 58 | printerid INT4 REFERENCES printers(id), |
---|
| 59 | PRIMARY KEY (groupid, printerid)); |
---|
| 60 | |
---|
| 61 | -- |
---|
[1201] | 62 | -- Now add some indexes |
---|
| 63 | -- |
---|
| 64 | CREATE UNIQUE INDEX userpquota_up_id_ix ON userpquota (userid, printerid); |
---|
| 65 | CREATE INDEX jobhistory_p_id_ix ON jobhistory (printerid); |
---|
| 66 | CREATE INDEX jobhistory_pd_id_ix ON jobhistory (printerid, jobdate); |
---|
| 67 | CREATE UNIQUE INDEX grouppquota_up_id_ix ON grouppquota (groupid, printerid); |
---|
| 68 | |
---|
[1240] | 69 | -- |
---|
| 70 | -- And now sets some ACLs |
---|
| 71 | -- |
---|
| 72 | REVOKE ALL ON printergroupsmembers FROM public; |
---|
| 73 | GRANT SELECT, INSERT, UPDATE, DELETE, REFERENCES ON printergroupsmembers TO pykotaadmin; |
---|
| 74 | GRANT SELECT ON printergroupsmembers TO pykotauser; |
---|