aboutsummaryrefslogtreecommitdiffstats
path: root/Zotlabs/Update/_1177.php
diff options
context:
space:
mode:
authorzotlabs <mike@macgirvin.com>2018-02-16 12:42:02 -0800
committerzotlabs <mike@macgirvin.com>2018-02-16 12:42:02 -0800
commitf492f808f4861ae9937dcaf3bf8476513ae1c091 (patch)
treedba3179893ab7beae238568a87578f2a498f12aa /Zotlabs/Update/_1177.php
parent27cd26ec1e26b6c389a623395687af5052f0b5a1 (diff)
downloadvolse-hubzilla-f492f808f4861ae9937dcaf3bf8476513ae1c091.tar.gz
volse-hubzilla-f492f808f4861ae9937dcaf3bf8476513ae1c091.tar.bz2
volse-hubzilla-f492f808f4861ae9937dcaf3bf8476513ae1c091.zip
refactor of the DB update system. Updates are now stored individually in Zotlabs/Update/_nnnn.php and are objects; so only the pending updates need to be loaded and executed rather than all historical updates. There is one single number (DB_UPDATE_VERSION) representing the current version and it is EQUAL TO the last known update. A dummy update _1201 was created to address the difference in counting behaviour; it will be executed on the next change of DB_UPDATE_VERSION as well as the next update. The database config values are also loaded from disk on every update immediately before setting the update lock in order to reduce timing conflicts and race conditions.
Diffstat (limited to 'Zotlabs/Update/_1177.php')
-rw-r--r--Zotlabs/Update/_1177.php66
1 files changed, 66 insertions, 0 deletions
diff --git a/Zotlabs/Update/_1177.php b/Zotlabs/Update/_1177.php
new file mode 100644
index 000000000..119e48ee8
--- /dev/null
+++ b/Zotlabs/Update/_1177.php
@@ -0,0 +1,66 @@
+<?php
+
+namespace Zotlabs\Update;
+
+class _1177 {
+function run() {
+
+ if(ACTIVE_DBTYPE == DBTYPE_POSTGRES) {
+ $r1 = q("alter table event add cal_id bigint NOT NULL DEFAULT '0'");
+ $r2 = q("create index \"event_cal_idx\" on event (\"cal_id\") ");
+
+ $r3 = q("CREATE TABLE \"cal\" (
+ \"cal_id\" serial NOT NULL,
+ \"cal_aid\" bigint NOT NULL DEFAULT '0',
+ \"cal_uid\" bigint NOT NULL DEFAULT '0',
+ \"cal_hash\" text NOT NULL,
+ \"cal_name\" text NOT NULL,
+ \"uri\" text NOT NULL,
+ \"logname\" text NOT NULL,
+ \"pass\" text NOT NULL,
+ \"ctag\" text NOT NULL,
+ \"synctoken\" text NOT NULL,
+ \"cal_types\" text NOT NULL,
+ PRIMARY KEY (\"cal_id\") ");
+ $r4 = q("create index \"cal_hash_idx\" on cal (\"cal_hash\") ");
+ $r5 = q("create index \"cal_name_idx\" on cal (\"cal_name\") ");
+ $r6 = q("create index \"cal_types_idx\" on cal (\"cal_types\") ");
+ $r7 = q("create index \"cal_aid_idx\" on cal (\"cal_aid\") ");
+ $r8 = q("create index \"cal_uid_idx\" on cal (\"cal_uid\") ");
+ $r = $r1 && $r2 && $r3 && $r4 && $r5 && $r6 && $r7 && $r8;
+ }
+ else {
+ $r1 = q("alter table event add cal_id int(10) unsigned NOT NULL DEFAULT '0',
+ add index ( cal_id ) ");
+
+ $r2 = q("CREATE TABLE IF NOT EXISTS `cal` (
+ `cal_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `cal_aid` int(10) unsigned NOT NULL DEFAULT '0',
+ `cal_uid` int(10) unsigned NOT NULL DEFAULT '0',
+ `cal_hash` varchar(255) NOT NULL DEFAULT '',
+ `cal_name` varchar(255) NOT NULL DEFAULT '',
+ `uri` varchar(255) NOT NULL DEFAULT '',
+ `logname` varchar(255) NOT NULL DEFAULT '',
+ `pass` varchar(255) NOT NULL DEFAULT '',
+ `ctag` varchar(255) NOT NULL DEFAULT '',
+ `synctoken` varchar(255) NOT NULL DEFAULT '',
+ `cal_types` varchar(255) NOT NULL DEFAULT '',
+ PRIMARY KEY (`cal_id`),
+ KEY `cal_aid` (`cal_aid`),
+ KEY `cal_uid` (`cal_uid`),
+ KEY `cal_hash` (`cal_hash`),
+ KEY `cal_name` (`cal_name`),
+ KEY `cal_types` (`cal_types`)
+ ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ");
+
+ $r = $r1 && $r2;
+ }
+
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+}
+
+
+
+} \ No newline at end of file