diff options
-rw-r--r-- | css/utility.css | 14 | ||||
-rw-r--r-- | include/functions.php | 15 | ||||
-rwxr-xr-x | include/sanity_check.php | 25 |
3 files changed, 48 insertions, 6 deletions
diff --git a/css/utility.css b/css/utility.css index 01aff091f..9420e05d0 100644 --- a/css/utility.css +++ b/css/utility.css @@ -1,5 +1,9 @@ @import "dijit.css"; +body.sanity_failed { + background : #900; +} + body { background : #f5f5f5; color : black; @@ -132,7 +136,7 @@ h2 { font-size : 14pt; border-width : 0px 0px 1px 0px; border-color : #f0f0f0; - border-style : solid; + border-style : solid; } div.content > h2 { @@ -202,11 +206,11 @@ body#sharepopup table { padding : 5px; } -body#sharepopup form { +body#sharepopup form { height : 100%; } -body#sharepopup input { +body#sharepopup input { width : 100%; } @@ -227,7 +231,7 @@ div.autocomplete ul { font-size : 10px; } -div.autocomplete ul li.selected { +div.autocomplete ul li.selected { background-color : #fff7d5; } @@ -240,7 +244,7 @@ div.autocomplete ul li { cursor : pointer; } -fieldset { +fieldset { border-width : 0px; padding : 0px 0px 5px 0px; margin : 0px; diff --git a/include/functions.php b/include/functions.php index 4265692ec..ed6f78eef 100644 --- a/include/functions.php +++ b/include/functions.php @@ -2546,3 +2546,18 @@ } } + function check_mysql_tables() { + $schema = db_escape_string(DB_NAME); + + $result = db_query("SELECT engine, table_name FROM information_schema.tables WHERE + table_schema = '$schema' AND table_name LIKE 'ttrss_%' AND engine != 'InnoDB'"); + + $bad_tables = []; + + while ($line = db_fetch_assoc($result)) { + array_push($bad_tables, $line); + } + + return $bad_tables; + } + diff --git a/include/sanity_check.php b/include/sanity_check.php index 39962219f..44bcb3db4 100755 --- a/include/sanity_check.php +++ b/include/sanity_check.php @@ -156,6 +156,29 @@ if (!class_exists("DOMDocument")) { array_push($errors, "PHP support for DOMDocument is required, but was not found."); } + + if (DB_TYPE == "mysql") { + $bad_tables = check_mysql_tables(); + + if (count($bad_tables) > 0) { + $bad_tables_fmt = []; + + foreach ($bad_tables as $bt) { + array_push($bad_tables_fmt, sprintf("%s (%s)", $bt['table_name'], $bt['engine'])); + } + + $msg = "<p>The following tables use an unsupported MySQL engine: <b>" . + implode(", ", $bad_tables_fmt) . "</b>.</p>"; + + $msg .= "<p>The only supported engine on MySQL is InnoDB. MyISAM lacks functionality to run + tt-rss. + Please convert aforementioned tables to InnoDB (if possible) or re-import the schema before continuing.</p> + <p><b>WARNING: importing the schema would mean LOSS OF ALL YOUR DATA.</b></p>"; + + + array_push($errors, $msg); + } + } } if (count($errors) > 0 && $_SERVER['REQUEST_URI']) { ?> @@ -165,7 +188,7 @@ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <link rel="stylesheet" type="text/css" href="css/utility.css"> </head> - <body> + <body class='sanity_failed'> <div class="floatingLogo"><img src="images/logo_small.png"></div> <div class="content"> |