* 准备 |
- 工具: navicat
- 数据库:mysql:5.6.39
项目上线前几天,经过测试环境下的使用,没有什么问题了。我们要达到完全模拟生产的环境去简单的试一下,这时我们要做的涉及到数据库的备份和迁移,迁移的话便是迁移至测试的环境。
* 方式 |
- 转储结构和数据
- 转储结构+数据传输
- 数据传输
这三种方式,小编都使用过,基于我们目前的状态,他们主要的不同之处是“远程表”(远程表:独立于当前Sql Server实例的OLE DB数据源中存储的表,这种表通过建立链接服务器或使用即席链接器名称来访问)
转储结构和数据:是一锅端的方式,无论是远程表还是正常表,都会转储出来生成sql文件。如果我们想要还原的时候,需要对源文件做一些修改,方案一:将含有using remote的内容去掉,方案二:将远程表的表删掉。两种方案我更倾向于后者,至于原因,想要了解的话请留言。
传出结构+数据传输:这是分解步骤,先将结构导出,然后进行数据传输,需要注意的地方时,将导出的结构进行修改,删除远程表的内容(所有的远程表结构另生成一份sql),输出传输时可以勾选我们要传输的具体表,这时我们不要勾选远程表(操作如下)。之后我们单独运行远程表的sql,至此工作完成。
数据传输:没有进行转储结构,直接选择表进行传输,如果目标对象中没有表结构的话,会先建表然后再传输(如果有表的话,可以直接传输,前提是我们要先设置一下)。之后我们单独运行只有远程表操作的sql文件,传输工作完毕。经过这三种方案的尝试,小编更习惯使用的时第三种方案,比较前两种的话,操作更少一些,速度也还可以。关键是,不容易出错,每次改数据库,都担心这次会刷存在感~
* Navicat其他功能 |
结构对比,是小编目前使用的比较多的操作,当我们的数据库涉及到多个环境,添加自己字段的时候,我们每个环境都添加,岂不是很痛苦,还是用好工具吧。
这里只需要说明一点,会将左侧的结构同步到右侧,我们在实操前,建议先自己练习一下。
之外,navicat在不断的升级,自己也尝试新的版本,欢迎小伙伴一起交流新版本的使用新的,自己感受到新旧版本的不同之处是:数据传输,结构同步之处;新版本代码段的增加,新版本识别符增加,提升了sql编写的速度。
* 结语 |
如果工具可以帮我们解决问题,那我们尽量不要人工操作,同时也要精进对工具的研究,而每一款工具,如若我们再工作中用到了,并且很常用,那我们何不把他用到极致呢?