]> git.mxchange.org Git - friendica-addons.git/blobdiff - dav/friendica/database-init.inc.php
Merge pull request #461 from annando/bugfix-photo
[friendica-addons.git] / dav / friendica / database-init.inc.php
index 7c0d23a3a98396621817db629bbaf14c06b560e5..e172b44dc810c0c017d1262816193b3a1a2fbc23 100644 (file)
@@ -44,16 +44,13 @@ function dav_get_update_statements($from_version)
        }
 
        if (in_array($from_version, array(1, 2))) {
-               $stms[] = "DROP TABLE `dav_addressbooks_phone`";
-               $stms[] = "DROP TABLE `dav_addressbooks_community`";
-               $stms[] = "DROP TABLE `dav_cards`";
-
                $stms[] = "CREATE TABLE IF NOT EXISTS `dav_addressbooks` (
   `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
   `namespace` mediumint(9) NOT NULL,
   `namespace_id` int(11) unsigned NOT NULL,
   `displayname` varchar(200) NOT NULL,
   `description` varchar(500) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
+  `needs_rebuild` TINYINT NOT NULL DEFAULT '1',
   `uri` varchar(50) NOT NULL,
   `ctag` int(11) unsigned NOT NULL DEFAULT '1',
   PRIMARY KEY (`id`)
@@ -66,7 +63,7 @@ function dav_get_update_statements($from_version)
   `carddata` mediumtext CHARACTER SET utf8 COLLATE utf8_unicode_ci,
   `uri` varchar(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
   `lastmodified` timestamp NULL DEFAULT NULL,
-  `manually_edited` tinyint(4) NOT NULL DEFAULT '0',
+  `needs_rebuild` tinyint(4) NOT NULL DEFAULT '0',
   `manually_deleted` tinyint(4) NOT NULL DEFAULT '0',
   `etag` varchar(15) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
   `size` int(10) unsigned NOT NULL,
@@ -194,6 +191,7 @@ function dav_get_create_statements($except = array())
   `namespace_id` int(11) unsigned NOT NULL,
   `displayname` varchar(200) NOT NULL,
   `description` varchar(500) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
+  `needs_rebuild` TINYINT NOT NULL DEFAULT '1',
   `uri` varchar(50) NOT NULL,
   `ctag` int(11) unsigned NOT NULL DEFAULT '1',
   PRIMARY KEY (`id`)
@@ -206,7 +204,7 @@ function dav_get_create_statements($except = array())
   `carddata` mediumtext CHARACTER SET utf8 COLLATE utf8_unicode_ci,
   `uri` varchar(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
   `lastmodified` timestamp NULL DEFAULT NULL,
-  `manually_edited` tinyint(4) NOT NULL DEFAULT '0',
+  `needs_rebuild` tinyint(4) NOT NULL DEFAULT '0',
   `manually_deleted` tinyint(4) NOT NULL DEFAULT '0',
   `etag` varchar(15) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
   `size` int(10) unsigned NOT NULL,
@@ -226,8 +224,12 @@ function dav_check_tables()
        $x = q("DESCRIBE %s%scalendars", CALDAV_SQL_DB, CALDAV_SQL_PREFIX);
        if (!$x) return -1;
        if (count($x) == 9) return 1; // Version 0.1
-       // @TODO Detect Version 0.2
+
+       $x2 = q("show tables like '%s%saddressbooks'", CALDAV_SQL_DB, CALDAV_SQL_PREFIX);
+       if (!$x2 || count($x2) == 0) return 2; // Version 0.2
+
        if (count($x) == 12) return 0; // Correct
+
        return -2; // Unknown version
 }
 
@@ -240,10 +242,11 @@ function dav_create_tables()
        $stms   = dav_get_create_statements();
        $errors = array();
 
-       global $db;
-       foreach ($stms as $st) {
-               $db->q($st);
-               if ($db->error) $errors[] = $db->error;
+       foreach ($stms as $st) { // @TODO Friendica-dependent
+               dba::e($st);
+               if (dba::errorMessage()) {
+                       $errors[] = dba::errorMessage();
+               }
        }
 
        return $errors;
@@ -255,16 +258,17 @@ function dav_create_tables()
 function dav_upgrade_tables()
 {
        $ver = dav_check_tables();
-       if (!in_array($ver, array(1))) return array("Unknown error");
-
+       if (!in_array($ver, array(1, 2))) return array("Unknown error");
        $stms   = dav_get_update_statements($ver);
+
        $errors = array();
 
-       global $db;
-       foreach ($stms as $st) {
-               $db->q($st);
-               if ($db->error) $errors[] = $db->error;
+       foreach ($stms as $st) { // @TODO Friendica-dependent
+               dba::e($st);
+               if (dba::errorMessage()) {
+                       $errors[] = dba::errorMessage();
+               }
        }
 
        return $errors;
-}
\ No newline at end of file
+}