Rev 443 | Rev 558 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
441 | daniel-mar | 1 | <?php |
2 | |||
3 | /* |
||
4 | * OIDplus 2.0 |
||
511 | daniel-mar | 5 | * Copyright 2019 - 2021 Daniel Marschall, ViaThinkSoft |
441 | daniel-mar | 6 | * |
7 | * Licensed under the Apache License, Version 2.0 (the "License"); |
||
8 | * you may not use this file except in compliance with the License. |
||
9 | * You may obtain a copy of the License at |
||
10 | * |
||
11 | * http://www.apache.org/licenses/LICENSE-2.0 |
||
12 | * |
||
13 | * Unless required by applicable law or agreed to in writing, software |
||
14 | * distributed under the License is distributed on an "AS IS" BASIS, |
||
15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||
16 | * See the License for the specific language governing permissions and |
||
17 | * limitations under the License. |
||
18 | */ |
||
19 | |||
20 | /** |
||
21 | * This function will be called by OIDplusDatabaseConnection.class.php at method afterConnect(). |
||
22 | * @param OIDplusDatabaseConnection $db is the OIDplusDatabaseConnection class |
||
23 | * @param string $version is the current version (this script MUST increase the number by 1 when it is done) |
||
24 | * @throws OIDplusException |
||
25 | */ |
||
26 | function oidplus_dbupdate_204_205(OIDplusDatabaseConnection $db, string &$version) { |
||
27 | if ($db->transaction_supported()) $db->transaction_begin(); |
||
28 | |||
29 | if ($db->getSlang()::id() == 'mssql') { |
||
30 | $db->query("alter table ###ra alter column [ra_name] [varchar](100) NULL;"); |
||
31 | $db->query("alter table ###ra alter column [personal_name] [varchar](100) NULL;"); |
||
32 | $db->query("alter table ###ra alter column [organization] [varchar](100) NULL;"); |
||
33 | $db->query("alter table ###ra alter column [office] [varchar](100) NULL;"); |
||
34 | $db->query("alter table ###ra alter column [street] [varchar](100) NULL;"); |
||
35 | $db->query("alter table ###ra alter column [zip_town] [varchar](100) NULL;"); |
||
36 | $db->query("alter table ###ra alter column [country] [varchar](100) NULL;"); |
||
37 | $db->query("alter table ###ra alter column [phone] [varchar](100) NULL;"); |
||
38 | $db->query("alter table ###ra alter column [mobile] [varchar](100) NULL;"); |
||
39 | $db->query("alter table ###ra alter column [fax] [varchar](100) NULL;"); |
||
40 | $db->query("alter table ###ra alter column [salt] [varchar](100) NULL;"); |
||
41 | $db->query("alter table ###ra alter column [authkey] [varchar](100) NULL;"); |
||
42 | |||
43 | $db->query("alter table ###objects alter column [title] [varchar](255) NULL;"); |
||
44 | $db->query("alter table ###objects alter column [description] [text] NULL;"); |
||
45 | } |
||
46 | else if ($db->getSlang()::id() == 'mysql') { |
||
47 | $db->query("alter table ###ra modify ra_name varchar(100) NULL;"); |
||
48 | $db->query("alter table ###ra modify personal_name varchar(100) NULL;"); |
||
49 | $db->query("alter table ###ra modify organization varchar(100) NULL;"); |
||
50 | $db->query("alter table ###ra modify office varchar(100) NULL;"); |
||
51 | $db->query("alter table ###ra modify street varchar(100) NULL;"); |
||
52 | $db->query("alter table ###ra modify zip_town varchar(100) NULL;"); |
||
53 | $db->query("alter table ###ra modify country varchar(100) NULL;"); |
||
54 | $db->query("alter table ###ra modify phone varchar(100) NULL;"); |
||
55 | $db->query("alter table ###ra modify mobile varchar(100) NULL;"); |
||
56 | $db->query("alter table ###ra modify fax varchar(100) NULL;"); |
||
57 | $db->query("alter table ###ra modify salt varchar(100) NULL;"); |
||
58 | $db->query("alter table ###ra modify authkey varchar(100) NULL;"); |
||
59 | |||
60 | $db->query("alter table ###objects modify title varchar(255) NULL;"); |
||
61 | $db->query("alter table ###objects modify description text NULL;"); |
||
62 | } |
||
63 | else if ($db->getSlang()::id() == 'pgsql') { |
||
64 | $db->query("alter table ###ra alter column ra_name DROP NOT NULL"); |
||
65 | $db->query("alter table ###ra alter column personal_name DROP NOT NULL"); |
||
66 | $db->query("alter table ###ra alter column organization DROP NOT NULL"); |
||
67 | $db->query("alter table ###ra alter column office DROP NOT NULL"); |
||
68 | $db->query("alter table ###ra alter column street DROP NOT NULL"); |
||
69 | $db->query("alter table ###ra alter column zip_town DROP NOT NULL"); |
||
70 | $db->query("alter table ###ra alter column country DROP NOT NULL"); |
||
71 | $db->query("alter table ###ra alter column phone DROP NOT NULL"); |
||
72 | $db->query("alter table ###ra alter column mobile DROP NOT NULL"); |
||
73 | $db->query("alter table ###ra alter column fax DROP NOT NULL"); |
||
74 | $db->query("alter table ###ra alter column salt DROP NOT NULL"); |
||
75 | $db->query("alter table ###ra alter column authkey DROP NOT NULL"); |
||
76 | |||
77 | $db->query("alter table ###objects alter column title DROP NOT NULL"); |
||
78 | $db->query("alter table ###objects alter column description DROP NOT NULL"); |
||
79 | } |
||
80 | else if ($db->getSlang()::id() == 'sqlite') { |
||
81 | $db->query("CREATE TABLE `###ra2` (". |
||
82 | " `ra_id` INTEGER PRIMARY KEY AUTOINCREMENT,". |
||
83 | " `email` TEXT NOT NULL UNIQUE,". |
||
84 | " `ra_name` TEXT NULL,". |
||
85 | " `personal_name` TEXT NULL,". |
||
86 | " `organization` TEXT NULL,". |
||
87 | " `office` TEXT NULL,". |
||
88 | " `street` TEXT NULL,". |
||
89 | " `zip_town` TEXT NULL,". |
||
90 | " `country` TEXT NULL,". |
||
91 | " `phone` TEXT NULL,". |
||
92 | " `mobile` TEXT NULL,". |
||
93 | " `fax` TEXT NULL,". |
||
94 | " `privacy` INTEGER NOT NULL DEFAULT 0,". |
||
95 | " `salt` TEXT NULL,". |
||
96 | " `authkey` TEXT NULL,". |
||
443 | daniel-mar | 97 | " `registered` TEXT,". |
98 | " `updated` TEXT,". |
||
441 | daniel-mar | 99 | " `last_login` datetime". |
100 | ");"); |
||
101 | $db->query("INSERT INTO ###ra2 SELECT * FROM ###ra;"); |
||
102 | $db->query("DROP TABLE ###ra;"); |
||
103 | $db->query("ALTER TABLE ###ra2 RENAME TO ###ra;"); |
||
104 | |||
105 | $db->query("CREATE TABLE `###objects2` (". |
||
106 | " `id` TEXT NOT NULL,". |
||
107 | " `parent` TEXT DEFAULT NULL REFERENCES `objects`(`id`),". |
||
108 | " `title` TEXT NULL,". |
||
109 | " `description` TEXT NULL,". |
||
110 | " `ra_email` TEXT NULL REFERENCES `###ra`(`email`),". |
||
111 | " `confidential` boolean NOT NULL,". |
||
443 | daniel-mar | 112 | " `created` TEXT,". |
113 | " `updated` TEXT,". |
||
441 | daniel-mar | 114 | " `comment` TEXT NULL,". |
115 | " PRIMARY KEY (`id`)". |
||
116 | ");"); |
||
117 | $db->query("INSERT INTO ###objects2 SELECT * FROM ###objects;"); |
||
118 | $db->query("DROP TABLE ###objects;"); |
||
119 | $db->query("ALTER TABLE ###objects2 RENAME TO ###objects;"); |
||
120 | } |
||
121 | |||
122 | $version = 205; |
||
123 | $db->query("UPDATE ###config SET value = ? WHERE name = 'database_version'", array($version)); |
||
124 | |||
125 | if ($db->transaction_supported()) $db->transaction_commit(); |
||
126 | } |