我有两个数据库,一个在localhost(登台DB),另一个在远程服务器(Live DB)上。最初,登台DB与Live DB完全相同。我在暂存数据库上做了一些测试,现在我想将这些更改移动到Live DB。但问题是,在这段时间内,Live DB还有其他一些变化,而且我还没有将其留在staging DB上进行测试。
我想保留Live DB的记录,但也希望从登台DB添加更新或新记录。并且,我不想手动执行此操作,因为此过程将在未来进行很多次。
我想过在没有DROP TABLE
命令的情况下获取所有表。我还使用sed
将CREATE TABLE
命令更改为CREATE TABLE IF NOT EXISTS
,以确保我不会错过任何来自暂存数据库的表。接下来,我向--insert-ignore
添加了mysqldump
选项,但这对我的情况没有帮助。并且,我不想使用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
的新手,所以请帮我解决这个问题。