]> git.mxchange.org Git - friendica.git/blobdiff - src/Database/DBStructure.php
Merge pull request #6153 from JonnyTischbein/issue_return_delete_comments
[friendica.git] / src / Database / DBStructure.php
index 1297979eadb477abf9a53383ec7d17903b003f78..d4a1ee937fcedc759ca5c0ae658b27e0794339b6 100644 (file)
@@ -23,6 +23,10 @@ require_once 'include/text.php';
  */
 class DBStructure
 {
+       const UPDATE_NOT_CHECKED = 0; // Database check wasn't executed before
+       const UPDATE_SUCCESSFUL  = 1; // Database check was successful
+       const UPDATE_FAILED      = 2; // Database check failed
+
        /**
         * Database structure definition loaded from config/dbstructure.php
         *
@@ -53,58 +57,6 @@ class DBStructure
                }
        }
 
-       /*
-        * send the email and do what is needed to do on update fails
-        *
-        * @param update_id             (int) number of failed update
-        * @param error_message (str) error message
-        */
-       public static function updateFail($update_id, $error_message) {
-               $a = get_app();
-
-               //send the administrators an e-mail
-               $admin_mail_list = "'".implode("','", array_map(['Friendica\Database\DBA', 'escape'], explode(",", str_replace(" ", "", Config::get('config', 'admin_email')))))."'";
-               $adminlist = q("SELECT uid, language, email FROM user WHERE email IN (%s)",
-                       $admin_mail_list
-               );
-
-               // No valid result?
-               if (!DBA::isResult($adminlist)) {
-                       Logger::log(sprintf('Cannot notify administrators about update_id=%d, error_message=%s', $update_id, $error_message), LOGGER_INFO);
-
-                       // Don't continue
-                       return;
-               }
-
-               // every admin could had different language
-               foreach ($adminlist as $admin) {
-                       $lang = (($admin['language'])?$admin['language']:'en');
-                       L10n::pushLang($lang);
-
-                       $preamble = deindent(L10n::t("
-                               The friendica developers released update %s recently,
-                               but when I tried to install it, something went terribly wrong.
-                               This needs to be fixed soon and I can't do it alone. Please contact a
-                               friendica developer if you can not help me on your own. My database might be invalid.",
-                               $update_id));
-                       $body = L10n::t("The error message is\n[pre]%s[/pre]", $error_message);
-
-                       notification([
-                               'uid'      => $admin['uid'],
-                               'type'     => SYSTEM_EMAIL,
-                               'to_email' => $admin['email'],
-                               'preamble' => $preamble,
-                               'body'     => $body,
-                               'language' => $lang]
-                       );
-                       L10n::popLang();
-               }
-
-               //try the logger
-               Logger::log("CRITICAL: Database structure update failed: ".$error_message);
-       }
-
-
        private static function tableStructure($table) {
                $structures = q("DESCRIBE `%s`", $table);
 
@@ -222,7 +174,7 @@ class DBStructure
 
                $errors = '';
 
-               Logger::log('updating structure', LOGGER_DEBUG);
+               Logger::log('updating structure', Logger::DEBUG);
 
                // Get the current structure
                $database = [];
@@ -235,7 +187,7 @@ class DBStructure
                        foreach ($tables AS $table) {
                                $table = current($table);
 
-                               Logger::log(sprintf('updating structure for table %s ...', $table), LOGGER_DEBUG);
+                               Logger::log(sprintf('updating structure for table %s ...', $table), Logger::DEBUG);
                                $database[$table] = self::tableStructure($table);
                        }
                }
@@ -377,8 +329,9 @@ class DBStructure
                                }
 
                                if (isset($database[$name]["table_status"]["Comment"])) {
-                                       if ($database[$name]["table_status"]["Comment"] != $structure['comment']) {
-                                               $sql2 = "COMMENT = '".DBA::escape($structure['comment'])."'";
+                                       $structurecomment = defaults($structure, "comment", "");
+                                       if ($database[$name]["table_status"]["Comment"] != $structurecomment) {
+                                               $sql2 = "COMMENT = '".DBA::escape($structurecomment)."'";
 
                                                if ($sql3 == "") {
                                                        $sql3 = "ALTER" . $ignore . " TABLE `".$temp_name."` ".$sql2;
@@ -535,9 +488,9 @@ class DBStructure
                        Config::set('system', 'maintenance_reason', '');
 
                        if ($errors) {
-                               Config::set('system', 'dbupdate', DB_UPDATE_FAILED);
+                               Config::set('system', 'dbupdate', self::UPDATE_FAILED);
                        } else {
-                               Config::set('system', 'dbupdate', DB_UPDATE_SUCCESSFUL);
+                               Config::set('system', 'dbupdate', self::UPDATE_SUCCESSFUL);
                        }
                }