我有一个本地服务器,我在我的项目上工作,我有另一个测试服务器,我部署该项目。我如何备份数据库数据,以适应新的数据库结构?
案例: 我想将新的数据库结构从本地服务器传输到测试服务器,并保留已存在于测试服务器数据库中的数据。
我试着这样做:由
备份测试服务器数据:
mysqldump –u USER –p –no-create-info DATABASE < OUTPUTFILE.sql
那么新结构传输到测试服务器,然后:
mysql –u USER –p –h localhost DATABASE < OUTPUTFILE.sql
得到所有的数据都回来了。
问题是这样的:
我已经改变看起来像这样的表:
(本地)--------------------- ----------(测试服务器)
TABLENAME --------------------- TABLENAME
ID ---- -------------------------------------- id
name ------ ------------------------------名称
活跃
所以,当我尝试将旧的数据插入到新的结构,我得到的errormessage的:
ERROR 1136 (21S01) at line 17: Column count doesn't match value count at row 1
,因为它试图:
INSERT INTO `TABLENAME` VALUES (1,"test")
任何人有一个想法我能做些什么来解决这个问题?
预先感谢您
我有同样的问题,运行在MySQL中data.sql文件工作台。然而,通过命令行加载它,像冠军一样工作。 – 2013-06-19 20:14:09
酷!也为我工作! - 完全插入做了诀窍,因为我的旧数据库的列数少于新数据库的数量,所以计数是错误的。但是,此选项会将旧数据库中旧列的名称与新数据库中的旧列相匹配。剩下的列变为空,这在我的情况是好的。 – Eduardo 2015-05-29 16:01:13