我有一个来自Joomla MultiSite安装的MySQL数据库,其中有一组表,每个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+ megs并且每天都在增长),我可以找到js0_部分并将它们移到顶部,但这很繁琐,耗时且容易出错。
答案 0 :(得分:2)
问题是外键检查(在这种情况下,文件开头的SET FOREIGN_KEY_CHECKS=0
应该有效),还是只是在实时环境中导入问题?
使用mysqldump
似乎表按照您提供的顺序转储(如果指定表而不仅仅是数据库),但据我所知,这是未记录的行为,因此不应该依赖根据。