コード例 #1
0
        }
    }
    $checkpoint->done();
}
$indexes = Patch::checkpoint('indexes');
if (!$indexes->is_done()) {
    $idxs = DB::MetaIndexes('recordbrowser_words_map');
    $indexes->set('data', $idxs);
    $indexes->done();
}
$idxs = $indexes->get('data', array());
$checkpoint = Patch::checkpoint('word_index');
if (!$checkpoint->is_done() && !isset($idxs['rb_words_map__word_idx'])) {
    DB::CreateIndex('rb_words_map__word_idx', 'recordbrowser_words_map', 'word_id');
    $checkpoint->done();
}
$checkpoint = Patch::checkpoint('tab_index');
if (!$checkpoint->is_done() && !isset($idxs['rb_words_map__tab_idx'])) {
    DB::CreateIndex('rb_words_map__tab_idx', 'recordbrowser_words_map', 'tab_id');
    $checkpoint->done();
}
$checkpoint = Patch::checkpoint('record_tab_index');
if (!$checkpoint->is_done() && !isset($idxs['rb_words_map__record_tab_idx'])) {
    DB::CreateIndex('rb_words_map__record_tab_idx', 'recordbrowser_words_map', 'record_id,tab_id');
    $checkpoint->done();
}
$checkpoint = Patch::checkpoint('drop_index');
if (!$checkpoint->is_done() && isset($idxs['recordbrowser_words_map__idx'])) {
    DB::DropIndex('recordbrowser_words_map__idx', 'recordbrowser_words_map');
    $checkpoint->done();
}
コード例 #2
0
        $a = @DB::GetRow('SHOW CREATE TABLE crm_import_attach');
        if (preg_match('/CONSTRAINT (.+) FOREIGN KEY .*utils_attachment_link/', $a[1], $m)) {
            DB::Execute('alter table `crm_import_attach` drop foreign key ' . $m[1]);
        }
        //    else trigger_error('Unable to find attach_id fkey.', E_USER_ERROR);
    } else {
        $a = DB::GetOne("SELECT\n            tc.constraint_name, tc.table_name, kcu.column_name,\n            ccu.table_name AS foreign_table_name,\n            ccu.column_name AS foreign_column_name\n        FROM\n            information_schema.table_constraints AS tc\n        JOIN information_schema.key_column_usage AS kcu\n          ON tc.constraint_name = kcu.constraint_name\n        JOIN information_schema.constraint_column_usage AS ccu\n          ON ccu.constraint_name = tc.constraint_name\n        WHERE constraint_type = 'FOREIGN KEY' AND tc.table_name='utils_attachment_file' AND kcu.column_name='attach_id';");
        if ($a) {
            DB::Execute('alter table utils_attachment_file drop CONSTRAINT "' . $a . '"');
        }
        $a = @DB::GetOne("SELECT\n            tc.constraint_name, tc.table_name, kcu.column_name,\n            ccu.table_name AS foreign_table_name,\n            ccu.column_name AS foreign_column_name\n        FROM\n            information_schema.table_constraints AS tc\n        JOIN information_schema.key_column_usage AS kcu\n          ON tc.constraint_name = kcu.constraint_name\n        JOIN information_schema.constraint_column_usage AS ccu\n          ON ccu.constraint_name = tc.constraint_name\n        WHERE constraint_type = 'FOREIGN KEY' AND tc.table_name='crm_import_attach' AND kcu.column_name='id';");
        if ($a) {
            DB::Execute('alter table utils_attachment_file drop CONSTRAINT "' . $a . '"');
        }
    }
    @DB::DropIndex('attach_id', 'utils_attachment_file');
    $delete_old_fk_checkpoint->done();
}
Patch::set_message('Processing files');
$files_checkpoint = Patch::checkpoint('files');
if (!$files_checkpoint->is_done()) {
    if ($files_checkpoint->has('files')) {
        $files = $files_checkpoint->get('files');
    } else {
        $files = 0;
    }
    if ($files_checkpoint->has('files_qty')) {
        $files_qty = $files_checkpoint->get('files_qty');
    } else {
        $files_qty = DB::GetOne('SELECT count(*) FROM utils_attachment_file');
        $files_checkpoint->set('files_qty', $files_qty);