]> git.mxchange.org Git - friendica.git/commitdiff
Show a warning message in the admin panel when MyISAM is still in use
authorTobias Diekershoff <tobias.diekershoff@gmx.net>
Sun, 20 Nov 2016 08:50:14 +0000 (09:50 +0100)
committerTobias Diekershoff <tobias.diekershoff@gmx.net>
Sun, 20 Nov 2016 08:50:14 +0000 (09:50 +0100)
mod/admin.php
util/convert_innodb.sql [new file with mode: 0644]
view/global.css
view/templates/admin_summary.tpl

index 5443285001a7fb81a09c205604b7cc4ba5b1c380..ecb394b0efbadda37aff378a0b8317ec9515ea4f 100644 (file)
@@ -428,6 +428,14 @@ function admin_page_queue(&$a) {
  * @return string
  */
 function admin_page_summary(&$a) {
+       // are there MyISAM tables in the DB? If so, trigger a warning message
+       $r = q("select `engine` from `information_schema`.`tables` where `engine`='myisam' limit 1");
+       $showwarning = false;
+       $warningtext = "";
+       if (dbm::is_result($r)) {
+               $showwarning = true;
+               $warningtext = sprintf(t('Your DB still runs with MyISAM tables. You should change the engine type to InnoDB. As Friendica will use InnoDB only features in the future, you should change this! See <a href="%s">here</a> for a guide that may be helpful converting the table engines. You may also use the <tt>convert_innodb.sql</tt> in the <tt>/util</tt> directory of your Friendica installation.<br />'), 'https://dev.mysql.com/doc/refman/5.7/en/converting-tables-to-innodb.html');
+       }
        $r = q("SELECT `page-flags`, COUNT(`uid`) AS `count` FROM `user` GROUP BY `page-flags`");
        $accounts = array(
                array(t('Normal Account'), 0),
@@ -478,7 +486,9 @@ function admin_page_summary(&$a) {
                '$platform' => FRIENDICA_PLATFORM,
                '$codename' => FRIENDICA_CODENAME,
                '$build' =>  get_config('system','build'),
-               '$plugins' => array(t('Active plugins'), $a->plugins)
+               '$plugins' => array(t('Active plugins'), $a->plugins),
+               '$showwarning' => $showwarning,
+               '$warningtext' => $warningtext
        ));
 }
 
diff --git a/util/convert_innodb.sql b/util/convert_innodb.sql
new file mode 100644 (file)
index 0000000..6b065f3
--- /dev/null
@@ -0,0 +1,4 @@
+
+SELECT CONCAT('ALTER TABLE ',table_schema,'.',table_name,' engine=InnoDB;') 
+FROM information_schema.tables 
+WHERE engine = 'MyISAM';
index e3cbf08c3b252ac9a2598896ea5345191e5496c7..85e45db006f0fc28af4afd8c0d0e67537744c055 100644 (file)
@@ -473,3 +473,11 @@ td.pendingnote {
 td.pendingnote > p > span {
        font-weight: bold;
 }
+
+/* warning message */
+.warning-message {
+       padding: 10px;
+       margin: 5px;
+       border-left: 5px solid #f00;
+       font-weight: bold;
+}
index 08e84b008526f4174f661b8d3cdb6b5bccb47eb2..34df0db51034509adcc479cfbbd74c1132d67d15 100644 (file)
@@ -1,6 +1,11 @@
 
 <div id='adminpage'>
        <h1>{{$title}} - {{$page}}</h1>
+{{if $showwarning}}
+       <div id="admin-warning-message-wrapper">
+               <p id="admin-warning-message" class="warning-message">{{$warningtext}}</p>
+       </div>
+{{/if}}
 
        <dl>
                <dt>{{$queues.label}}</dt>