Rev 830 | Rev 1130 | 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 | |||
1050 | daniel-mar | 20 | use ViaThinkSoft\OIDplus\OIDplusDatabaseConnection; |
21 | |||
441 | daniel-mar | 22 | /** |
23 | * This function will be called by OIDplusDatabaseConnection.class.php at method afterConnect(). |
||
24 | * @param OIDplusDatabaseConnection $db is the OIDplusDatabaseConnection class |
||
830 | daniel-mar | 25 | * @return int new version set |
1050 | daniel-mar | 26 | * @throws \ViaThinkSoft\OIDplus\OIDplusException |
441 | daniel-mar | 27 | */ |
830 | daniel-mar | 28 | function oidplus_dbupdate_204(OIDplusDatabaseConnection $db) { |
29 | if ($db->transaction_supported()) $db->transaction_begin(); |
||
441 | daniel-mar | 30 | |
830 | daniel-mar | 31 | if ($db->getSlang()->id() == 'mssql') { |
32 | $db->query("alter table ###ra alter column [ra_name] [varchar](100) NULL;"); |
||
33 | $db->query("alter table ###ra alter column [personal_name] [varchar](100) NULL;"); |
||
34 | $db->query("alter table ###ra alter column [organization] [varchar](100) NULL;"); |
||
35 | $db->query("alter table ###ra alter column [office] [varchar](100) NULL;"); |
||
36 | $db->query("alter table ###ra alter column [street] [varchar](100) NULL;"); |
||
37 | $db->query("alter table ###ra alter column [zip_town] [varchar](100) NULL;"); |
||
38 | $db->query("alter table ###ra alter column [country] [varchar](100) NULL;"); |
||
39 | $db->query("alter table ###ra alter column [phone] [varchar](100) NULL;"); |
||
40 | $db->query("alter table ###ra alter column [mobile] [varchar](100) NULL;"); |
||
41 | $db->query("alter table ###ra alter column [fax] [varchar](100) NULL;"); |
||
42 | $db->query("alter table ###ra alter column [salt] [varchar](100) NULL;"); |
||
43 | $db->query("alter table ###ra alter column [authkey] [varchar](100) NULL;"); |
||
441 | daniel-mar | 44 | |
830 | daniel-mar | 45 | $db->query("alter table ###objects alter column [title] [varchar](255) NULL;"); |
46 | $db->query("alter table ###objects alter column [description] [text] NULL;"); |
||
47 | } |
||
48 | else if ($db->getSlang()->id() == 'mysql') { |
||
49 | $db->query("alter table ###ra modify ra_name varchar(100) NULL;"); |
||
50 | $db->query("alter table ###ra modify personal_name varchar(100) NULL;"); |
||
51 | $db->query("alter table ###ra modify organization varchar(100) NULL;"); |
||
52 | $db->query("alter table ###ra modify office varchar(100) NULL;"); |
||
53 | $db->query("alter table ###ra modify street varchar(100) NULL;"); |
||
54 | $db->query("alter table ###ra modify zip_town varchar(100) NULL;"); |
||
55 | $db->query("alter table ###ra modify country varchar(100) NULL;"); |
||
56 | $db->query("alter table ###ra modify phone varchar(100) NULL;"); |
||
57 | $db->query("alter table ###ra modify mobile varchar(100) NULL;"); |
||
58 | $db->query("alter table ###ra modify fax varchar(100) NULL;"); |
||
59 | $db->query("alter table ###ra modify salt varchar(100) NULL;"); |
||
60 | $db->query("alter table ###ra modify authkey varchar(100) NULL;"); |
||
441 | daniel-mar | 61 | |
830 | daniel-mar | 62 | $db->query("alter table ###objects modify title varchar(255) NULL;"); |
63 | $db->query("alter table ###objects modify description text NULL;"); |
||
64 | } |
||
65 | else if ($db->getSlang()->id() == 'pgsql') { |
||
66 | $db->query("alter table ###ra alter column ra_name DROP NOT NULL"); |
||
67 | $db->query("alter table ###ra alter column personal_name DROP NOT NULL"); |
||
68 | $db->query("alter table ###ra alter column organization DROP NOT NULL"); |
||
69 | $db->query("alter table ###ra alter column office DROP NOT NULL"); |
||
70 | $db->query("alter table ###ra alter column street DROP NOT NULL"); |
||
71 | $db->query("alter table ###ra alter column zip_town DROP NOT NULL"); |
||
72 | $db->query("alter table ###ra alter column country DROP NOT NULL"); |
||
73 | $db->query("alter table ###ra alter column phone DROP NOT NULL"); |
||
74 | $db->query("alter table ###ra alter column mobile DROP NOT NULL"); |
||
75 | $db->query("alter table ###ra alter column fax DROP NOT NULL"); |
||
76 | $db->query("alter table ###ra alter column salt DROP NOT NULL"); |
||
77 | $db->query("alter table ###ra alter column authkey DROP NOT NULL"); |
||
441 | daniel-mar | 78 | |
830 | daniel-mar | 79 | $db->query("alter table ###objects alter column title DROP NOT NULL"); |
80 | $db->query("alter table ###objects alter column description DROP NOT NULL"); |
||
81 | } |
||
82 | else if ($db->getSlang()->id() == 'sqlite') { |
||
83 | $db->query("CREATE TABLE `###ra2` (". |
||
84 | " `ra_id` INTEGER PRIMARY KEY AUTOINCREMENT,". |
||
85 | " `email` TEXT NOT NULL UNIQUE,". |
||
86 | " `ra_name` TEXT NULL,". |
||
87 | " `personal_name` TEXT NULL,". |
||
88 | " `organization` TEXT NULL,". |
||
89 | " `office` TEXT NULL,". |
||
90 | " `street` TEXT NULL,". |
||
91 | " `zip_town` TEXT NULL,". |
||
92 | " `country` TEXT NULL,". |
||
93 | " `phone` TEXT NULL,". |
||
94 | " `mobile` TEXT NULL,". |
||
95 | " `fax` TEXT NULL,". |
||
96 | " `privacy` INTEGER NOT NULL DEFAULT 0,". |
||
97 | " `salt` TEXT NULL,". |
||
98 | " `authkey` TEXT NULL,". |
||
99 | " `registered` TEXT,". |
||
100 | " `updated` TEXT,". |
||
101 | " `last_login` datetime". |
||
102 | ");"); |
||
103 | $db->query("INSERT INTO ###ra2 SELECT * FROM ###ra;"); |
||
104 | $db->query("DROP TABLE ###ra;"); |
||
105 | $db->query("ALTER TABLE ###ra2 RENAME TO ###ra;"); |
||
441 | daniel-mar | 106 | |
830 | daniel-mar | 107 | $db->query("CREATE TABLE `###objects2` (". |
108 | " `id` TEXT NOT NULL,". |
||
109 | " `parent` TEXT DEFAULT NULL REFERENCES `objects`(`id`),". |
||
110 | " `title` TEXT NULL,". |
||
111 | " `description` TEXT NULL,". |
||
112 | " `ra_email` TEXT NULL REFERENCES `###ra`(`email`),". |
||
113 | " `confidential` boolean NOT NULL,". |
||
114 | " `created` TEXT,". |
||
115 | " `updated` TEXT,". |
||
116 | " `comment` TEXT NULL,". |
||
117 | " PRIMARY KEY (`id`)". |
||
118 | ");"); |
||
119 | $db->query("INSERT INTO ###objects2 SELECT * FROM ###objects;"); |
||
120 | $db->query("DROP TABLE ###objects;"); |
||
121 | $db->query("ALTER TABLE ###objects2 RENAME TO ###objects;"); |
||
122 | } |
||
441 | daniel-mar | 123 | |
830 | daniel-mar | 124 | $version = 205; |
125 | $db->query("UPDATE ###config SET value = ? WHERE name = 'database_version'", array($version)); |
||
441 | daniel-mar | 126 | |
830 | daniel-mar | 127 | if ($db->transaction_supported()) $db->transaction_commit(); |
128 | |||
129 | return $version; |
||
441 | daniel-mar | 130 | } |