如果未找到mysqldump追加记录
我有两个数据库,一个在本地主机(stagingdb)上,另一个在远程服务器(livedb)上。最初,暂存数据库与实时数据库完全相同。我在临时数据库上做了一些测试,现在我想将这些更改转移到实时数据库。但问题是,在这段时间内,livedb还有一些其他的更改,而不是我将其留在stagingdb上进行测试的地方 我希望保留Live DB的记录,但也希望添加来自暂存DB的更新或新记录。而且,我不想手动操作,因为这个过程在将来会被执行很多次 我想到不用如果未找到mysqldump追加记录,mysql,linux,shell,Mysql,Linux,Shell,我有两个数据库,一个在本地主机(stagingdb)上,另一个在远程服务器(livedb)上。最初,暂存数据库与实时数据库完全相同。我在临时数据库上做了一些测试,现在我想将这些更改转移到实时数据库。但问题是,在这段时间内,livedb还有一些其他的更改,而不是我将其留在stagingdb上进行测试的地方 我希望保留Live DB的记录,但也希望添加来自暂存DB的更新或新记录。而且,我不想手动操作,因为这个过程在将来会被执行很多次 我想到不用DROP TABLE命令获取所有表。我还使用了sed将C
DROP TABLE
命令获取所有表。我还使用了sed
将CREATE TABLE
命令更改为CREATE TABLE IF note EXISTS
,以确保不会错过staging DB中的任何表。接下来,我在mysqldump
中添加了--insert ignore
选项,但这对我的情况没有帮助。而且,我不想使用REPLACE
命令,因为它非常具有破坏性
这是我的mysqldump
命令:
`which mysqldump` --defaults-file=./local.cnf --insert-ignore --skip-add-drop-table --compress --create-options --add-locks --skip-opt ${STAGE_DB} > dump.sql
我想要实现什么?
将临时数据库更新为Live DB,而不会丢失Live DB中的任何数据,并且仍然保留临时数据库中的记录
我是mysql的新手,所以请帮我解决这个问题。你想保留prob中的数据,从staging和merged到staging DB的模式更改是你想要的吗?@aviseks我想保留Live DB的数据,然后从stage DB合并到Live DB