} } $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(); }
$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);