var $dburl;
var $schema = array();
var $links = array();
+ var $views = array();
function __construct()
{
$this->loadIniFiles(); //?? shared???
+ $dbo = DB_DataObject::factory('core_enum');
+ if (is_a($dbo, 'PDO_DataObject')) {
+
+ $this->views = $dbo->generator()->introspection()->getListOf('views');
+ } else {
+ $db = DB_DataObject::factory('core_enum')->getDatabaseConnection();
+ $this->views = $db->getListOf( 'views'); // needs updated pear...
+ }
+
// update the engine first - get's around 1000 character limit on indexes..cd
// however - Innodb does not support fulltext indexes, so this may fail...
$this->updateEngine();
$ff->generateDataobjectsCache(true);
$this->dburl = parse_url($ff->database);
- print_R($ff->PDO_DataObject);exit;
-
+
$dbini = 'ini_'. basename($this->dburl['path']);
- $iniCache = $ff->DB_DataObject[$dbini];
+ $iniCache = isset( $ff->PDO_DataObject) ? $ff->PDO_DataObject['schema_location'] : $ff->DB_DataObject[$dbini];
if (!file_exists($iniCache)) {
return;
}
function updateCharacterSet()
{
- $db = DB_DataObject::factory('core_enum')->getDatabaseConnection();
- $views = $db->getListOf( 'views');
+ $views = $this->views;
foreach (array_keys($this->schema) as $tbl){
WHERE
CCSA.collation_name = T.table_collation
AND
- T.table_schema = '{$ce->database()}' -- COLLATE utf8_general_ci
+ T.table_schema = DATABASE() -- COLLATE utf8_general_ci
AND
T.table_name = '{$tbl}' -- COLLATE utf8_general_ci
");
$db = DB_DataObject::factory('core_enum');
$db->query("show variables like 'innodb_file_per_table'");
$db->fetch();
- if ($db->Value == 'OFF') {
- die("Error: set innodb_file_per_table = 1 in my.cnf\n\n");
+
+ $pg = HTML_FlexyFramework::get()->page;
+
+ if (empty($pg->opts['skip-mysql-checks'])) {
+ if ($db->Value == 'OFF') {
+ die("Error: set innodb_file_per_table = 1 in my.cnf\n\n");
+ }
+
}
+
// get a list of table views...
// innodb in single files is far more efficient that MYD or one big innodb file.
// first check if database is using this format.
- $db = DB_DataObject::factory('core_enum')->getDatabaseConnection();
- $views = $db->getListOf( 'views'); // needs updated pear...
-
-
+ $views = $this->views;
foreach (array_keys($this->schema) as $tbl){
from
information_schema.tables
where
- table_schema='{$ce->database()}'
+ table_schema= DATABASE()
and
table_name = '{$tbl}'
");
echo "InnoDB: SKIP $tbl\n";
continue;
}
+ if($ce->engine == 'ndbcluster' ){
+ echo "ndbcluster: SKIP $tbl\n";
+ continue;
+ }
+
// this used to be utf8_unicode_ci
//as the default collation for stored procedure parameters is utf8_general_ci and you can't mix collations.