0

我正在与 InnoDB MySQL 数据库搏斗,运气不佳(通常我是 MyISAM 人)。我正在尝试从生产数据库中获取内容并将其复制到开发数据库中(例如,相同的模式等。只是连接到不同的网站)。通常在 MyISAM 中我会这样做:

1) Dump the prod databse: mysqldump -u root -p prod_db_name > prod_dump.sql
2) Log into mysql terminal; 
3) drop database dev_db_name;
4) create database dev_db_name;
5) exit mysql terminal
6) mysql -u root -p dev_db_name < prod_dump.sql

等等。

但是,当我在这种特殊情况下执行此操作时,一切似乎都很好,直到我尝试使用连接到新填充的开发数据库的网站更新内容片段;在这种情况下,我会收到此错误:

Error Number: 1452

Cannot add or update a child row: a foreign key constraint fails (`abbott/logs`, CONSTRAINT `fk_logs_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`))

显然这与用户表有关。虽然我不确定它是否会有所不同,但一个因素可能是我无法控制填充用户表的用户 ID;它们是从外部单点登录/联合 API 输入的。

我已经尝试(盲目猜测)将 --single-transaction 添加到 mysqldump 命令;以及设置 FOREIGN_KEY_CONSTRAINTS = 0,然后手动删除每个表并再次打开它们,然后读取转储(例如,而不是删除整个数据库)。

任何帮助将非常感激。里斯。

4

0 回答 0