Esempio n. 1
0
            } else {
                echo $pdo->log->alternateOver('FAILED: ') . $pdo->log->primary($query);
            }
        }
    } else {
        echo $pdo->log->header($query);
    }
}
$path = nZEDb_RES . 'db' . DS . 'schema' . DS . 'mysql-ddl.sql';
$handle = fopen($path, "r");
if ($handle) {
    while (($line = fgets($handle)) !== false) {
        if (preg_match('/(?P<statement>CREATE UNIQUE INDEX)\\s+(?P<index>[\\w-]+)\\s+ON\\s+(?P<table>[\\w-]+)\\s*\\((?P<column>[\\w-]+(?:\\s*\\((?P<size>\\d+)\\))?)\\);/i', $line, $match)) {
            $columns = explode(',', $match['column']);
            foreach ($columns as $column) {
                $check = $pdo->checkColumnIndex($match['table'], $column);
                if (!isset($check['key_name'])) {
                    if (trim($match['table']) === 'collections') {
                        $tables = $pdo->query("SHOW TABLES");
                        foreach ($tables as $row) {
                            $tbl = $row['tables_in_' . DB_NAME];
                            if (preg_match('/collections_\\d+/', $tbl)) {
                                $check = $pdo->checkColumnIndex($tbl, $column);
                                if (!isset($check_collections['key_name'])) {
                                    $qry = "ALTER IGNORE TABLE {$tbl} ADD CONSTRAINT {$match['index']} UNIQUE ({$match['column']})";
                                    run_query($qry, $argv[1]);
                                }
                            }
                        }
                        $qry = "ALTER IGNORE TABLE " . trim($match['table']) . " ADD CONSTRAINT " . trim($match['index']) . " UNIQUE ({$match['column']})";
                        run_query($qry, $argv[1]);