Changed the search module installer to explicitly specify MyISAM as the database type. Changed the packager to not remove the engine specification if the table is search_records. Fixes Ticket #774

This commit is contained in:
Tim Almdal
2009-09-16 22:23:32 -07:00
parent 5490057480
commit 9d76797b17
4 changed files with 20 additions and 4 deletions
+8 -2
View File
@@ -114,18 +114,24 @@ class Packager_Controller extends Controller {
$root = ORM::factory("item", 1);
$root_created_timestamp = $root->created;
$root_updated_timestamp = $root->updated;
$table_name = "";
foreach (file($sql_file) as $line) {
// Prefix tables
$line = preg_replace(
"/(CREATE TABLE|IF EXISTS|INSERT INTO) `{$dbconfig['table_prefix']}(\w+)`/", "\\1 {\\2}",
$line);
if (preg_match("/CREATE TABLE {(\w+)}/", $line, $matches)) {
$table_name = $matches[1];
}
// Normalize dates
$line = preg_replace("/,$root_created_timestamp,/", ",UNIX_TIMESTAMP(),", $line);
$line = preg_replace("/,$root_updated_timestamp,/", ",UNIX_TIMESTAMP(),", $line);
// Remove ENGINE= specifications
$line = preg_replace("/ENGINE=\S+ /", "", $line);
// Remove ENGINE= specifications execpt for search records, it always needs to be MyISAM
if ($table_name != "search_records") {
$line = preg_replace("/ENGINE=\S+ /", "", $line);
}
$buf .= $line;
}