Как объединить две базы (таблицы) SQL в phpmyadmin?

InstantCMS 2.X
#1 10 марта 2021 в 14:00
Здравствуйте!
В phpmyadmin импортировал резервную копию базы, установил новую версию CMS и сделал "третью" пустую базу.
В пустую, "третью", базу скопировал базу с резервной копии. Переименовал префиксы таблиц на "cms_".
Пытаюсь скопировать "третью" базу в базу с тестовой, новой версией InstantCMS.
Захожу в "Операции", выбираю "Скопировать базу данных в". Пишу имя базы. Отмечаю "Только данные".
И отмечены галочки "Добавить AUTO_INCREMENT", "Добавить ограничения", "Настроить привилегии". Жму Вперёд.
Выдаётся:
#1062 — Дублирующаяся запись '10' по ключу 'PRIMARY'

INSERT INTO `instant2test`.`cms_activity`(`id`, `type_id`, `user_id`, `group_id`, `subject_title`, `subject_id`, `subject_url`, `reply_url`, `images`, `images_count`, `date_pub`, `is_private`, `is_parent_hidden`, `is_pub`) SELECT `id`, `type_id`, `user_id`, `group_id`, `subject_title`, `subject_id`, `subject_url`, `reply_url`, `images`, `images_count`, `date_pub`, `is_private`, `is_parent_hidden`, `is_pub` FROM `nordveg`.`cms_activity`

Пробовал убрать галочки "Добавить AUTO_INCREMENT", "Добавить ограничения", "Настроить привилегии". Не помогает.
Может есть какой-то скрипт?
#2 10 марта 2021 в 14:57
Есть такое INSERT IGNORE INTO, может поможет.
#3 10 марта 2021 в 15:13
Пробовал очистить таблицы в структуре новой InstantCMS и скопировать таблицы с резервной базы. Но выдаётся ошибка отсутствия таблицы которая была заведена для анкет.
Т.е. нету такого как скопировать файлы с заменой или пропустить. Все шаги придётся повторять заново.
#4 10 марта 2021 в 15:28

Но выдаётся ошибка отсутствия таблицы которая была заведена для анкет.

max_nordvegan
Всё верно, ведь в новой базе нет таких таблиц а вы переносите только контент, без таблиц

Отмечаю "Только данные".

max_nordvegan
Тут надо переносить либо с таблицами, либо создать вручную нужные таблицы в тестовой базе.
#5 10 марта 2021 в 16:53


Есть такое INSERT IGNORE INTO, может поможет.

Loadырь

Процедура всеравно прерывается на первой такой ошибке в первой таблице. И дальше не проходит.
Делая "Скопировать базу данных в" через "операции" стала вообще выдаваться безымянная ошибка.
#6 10 марта 2021 в 17:08
max_nordvegan,
Попробуйте это:
/users/files/download8040.html
Делал для себя, чтобы каждый раз вручную команды не писать.
Папку b2b из архива в корень сайта (любого сайта, хоть вообще в отдельный сайт положите), запускать вашсайт.ру/b2b
#7 10 марта 2021 в 17:56


max_nordvegan,
Попробуйте это:
/users/files/download8040.html
Делал для себя, чтобы каждый раз вручную команды не писать.
Папку b2b из архива в корень сайта (любого сайта, хоть вообще в отдельный сайт положите), запускать вашсайт.ру/b2b

Ris

Спасибо!
Но получается нужно больше 100 таблиц добавлять вручную.
А нельзя написать что-то похожее на:

INSERT IGNORE INTO instant2merged.*
(*)
SELECT *
FROM nordveg.*

Могут ли возникнуть ошибки в CMS с объединенной базой SQL?
#8 10 марта 2021 в 18:27
max_nordvegan,
Тогда так
/users/files/download8074.html
Только это очищает таблицы перед перенсом. Нужно транкейт отключить, чтобы не стирались базы перед переносом.
#9 11 марта 2021 в 13:18


max_nordvegan,
Тогда так
/users/files/download7786.html
Только это очищает таблицы перед перенсом. Нужно транкейт отключить, чтобы не стирались базы перед переносом.

Ris

Спасибо! Там ещё drop прописан. Наверное его тоже лучше отключить?
#10 11 марта 2021 в 13:43

Спасибо! Там ещё drop прописан. Наверное его тоже лучше отключить?

max_nordvegan
Нет, достаточно в файле \transfer\modules\transfer.php закомментировать 30-ю строку.
Чтобы стало так:
  1. public function prepare(){
  2.  
  3. /*$this->mg->truncate2($_POST['module']);*/
  4.  
  5. }
#11 11 марта 2021 в 13:56
ok. Не пойму какая база в какую переносится. Менял ввод данных баз поочередности. Менял порядок первой со второй.
Но в "Выберите контент который вы хотите перенести" не предлагаются к переносу мои таблицы:
cms_con_anketa_test, cms_con_anketa_test_cats, cms_con_anketa_test_cats_bind, cms_con_anketa_test_fields, cms_con_anketa_test_props, cms_con_anketa_test_props_bind, cms_con_anketa_test_props_values.


Спасибо! Там ещё drop прописан. Наверное его тоже лучше отключить?

max_nordvegan
Нет, достаточно в файле \transfer\modules\transfer.php закомментировать 30-ю строку.
Чтобы стало так:
  1. public function prepare(){
  2.  
  3. /*$this->mg->truncate2($_POST['module']);*/
  4.  
  5. }

Ris
#12 11 марта 2021 в 14:32

не предлагаются к переносу мои таблицы:
cms_con_anketa_test, cms_con_anketa_test_cats ...,

max_nordvegan
А они есть в новой базе такие таблицы?
Эта утилита переносит только то что есть в обоих базах.
Создайте на новом сайте нужные типы контента — тогда таблицы появятся в выборе.
#13 12 марта 2021 в 14:43
Я правильно понимаю: "База источника 2.**" -это откуда переносятся данные, а
"База данных 2.x" — это куда переносятся данные? Смущает, что x один символ, а ** две звездочки. Т.е. .** похожи на новую версию, а .x на старую.


не предлагаются к переносу мои таблицы:
cms_con_anketa_test, cms_con_anketa_test_cats ...,

max_nordvegan
А они есть в новой базе такие таблицы?
Эта утилита переносит только то что есть в обоих базах.
Создайте на новом сайте нужные типы контента — тогда таблицы появятся в выборе.

Ris
#14 12 марта 2021 в 19:41
max_nordvegan,
Не трогайте ничего, ради бога. А то как бы чего не вышло…
#15 13 марта 2021 в 02:34
Да некуда слететь. Тестирую на localhost на LAMP`e от BaseAlt.
По идее база получателя должна иметь структуру от новой версии CMS. Ведь более вероятно, что были добавлены какие-то таблицы, поля. А если их не будет вероятен сбой.


max_nordvegan,
Не трогайте ничего, ради бога. А то как бы чего не вышло...

Ris
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.