Экспорт таблиц БД через phpMyAdmin в не алфавитном порядке - PullRequest
3 голосов
/ 05 июня 2010

У меня есть база данных MySQL из установки Joomla MultiSite, где у нее есть набор таблиц с разными префиксами для каждого сайта Joomla. Когда я экспортирую БД через phpMyAdmin, он создает файл SQL, в котором таблицы создаются и заполняются в алфавитном порядке. Проблема заключается в том, что таблицы для подчиненных сайтов имеют зависимости от таблиц для основного сайта, но в алфавитном порядке их префиксы стоят перед главным сайтом. Таким образом, экспорт работает нормально, но когда я пытаюсь импортировать, я получаю сообщение об ошибке за ошибкой и вынужден вручную перемещать разделы в файле SQL, чтобы убедиться, что зависимые таблицы создаются / заполняются первыми.

Итак, можно ли экспортировать БД через phpMyAdmin с таблицами в определенном порядке?

РЕДАКТИРОВАТЬ: Вот ошибка, которую я получаю, которая должна уточнить вещи:

Error

SQL query: Documentation

--
-- Dumping data for table `j1_content_rating`
--
-- --------------------------------------------------------
--
-- Table structure for table `j1_core_acl_aro`
--
CREATE ALGORITHM = UNDEFINED DEFINER = `bookings_bpjms`@`localhost` SQL SECURITY DEFINER VIEW `bookings_bpjms`.`j1_core_acl_aro` AS SELECT `bookings_bpjms`.`js0_core_acl_aro`.`id` AS `id` , `bookings_bpjms`.`js0_core_acl_aro`.`section_value` AS `section_value` , `bookings_bpjms`.`js0_core_acl_aro`.`value` AS `value` , `bookings_bpjms`.`js0_core_acl_aro`.`order_value` AS `order_value` , `bookings_bpjms`.`js0_core_acl_aro`.`name` AS `name` , `bookings_bpjms`.`js0_core_acl_aro`.`hidden` AS `hidden`
FROM `bookings_bpjms`.`js0_core_acl_aro` ;

MySQL said: Documentation
#1146 - Table 'bookings_bpjms.js0_core_acl_aro' doesn't exist 

Части js0_ скрипта импорта следуют за частями j1_, поэтому возникает эта ошибка. Если я отредактирую этот файл в текстовом редакторе (более 30 мегабайт и растет каждый день), я могу найти части js0_ и переместить их наверх, но это утомительно, требует много времени и подвержено ошибкам.

1 Ответ

2 голосов
/ 06 июня 2010

Является ли проблема проверкой внешнего ключа (в этом случае SET FOREIGN_KEY_CHECKS=0 в начале файла должно работать), или проблема заключается в простом импорте в живую среду?

При mysqldump кажется, что таблицы сбрасываются в том порядке, в котором вы их задаете (если вы указываете таблицы, а не просто базу данных), но, насколько мне известно, это недокументированное поведение, на которое нельзя полагаться.

...