实操:pro数据怎么同步到uat?(navicat操作示例)

引入:在实际开发中,可能我们为了复现某个生产上的BUG,不要造很多数据比较麻烦,我们可以将生产的数据同步到uat。或者,在uat测试阶段我们准备了很多基础数据,上生产时候,避免再次维护,需要同步数据。本文以mysql数据库为例,连接工具以navicat演示实现上述需求。

1. 操作方式一

选择pro的表,右键转储SQL文件。或者导出向导导出SQL脚本。再去uat库执行SQL。

每次转储sql执行再执行较为麻烦。转储的sql脚本有一个坑,请注意: 

转储的表接口datetime类型时,sql中会出现datetime(0),执行时会报错,执行前,请注意将datetime(0),全局替换成datetime。

2.操作方式二(推荐)

navicat提供了同步工具。

工具---数据同步----选择生产与uat的库。点击同步。

 

【补充说明】在上述工具窗口中,有三种同步方式,下面做出说明:

数据传输:表数据和结构一起同步(之前的数据会被覆盖)。
数据同步:表数据同步、表结构不同步(之前数据被覆盖(所有字段全部选择的情况下),数据同步时可选择要同步的数据(之前的可不覆盖,只同步新增的))。
结构同步:表数据不同步、表结构同步。

完结!

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个错误是由于脚本中的筛选逻辑导致的。脚本在筛选镜像时使用了 `grep` 命令,而 `grep` 命令是基于文本行进行匹配的,可能会出现部分匹配的情况。 为了解决这个问题,我们可以使用 `awk` 命令来进行筛选和计数镜像。请尝试以下修改后的脚本: ```bash #!/bin/bash # 获取所有镜像列表,并按照创建时间排序 image_list=$(docker image ls --format "{{.Repository}}:{{.Tag}}|{{.CreatedAt}}" | sort -t "|" -k2,2) # 获取所有镜像名 image_names=$(echo "$image_list" | awk -F ':' '{print $1}' | uniq) # 遍历每个镜像名 for image_name in $image_names; do # 获取特定镜像名的镜像列表 filtered_images=$(echo "$image_list" | awk -F ':' -v name="$image_name" '$1 == name') # 获取镜像数量 image_count=$(echo "$filtered_images" | wc -l) # 如果镜像数量超过3个,则删除旧的镜像,只保留最近的两个 if [ $image_count -gt 3 ]; then images_to_delete=$((image_count - 2)) images_to_delete_list=$(echo "$filtered_images" | head -n $images_to_delete | cut -d "|" -f 1) for image in $images_to_delete_list; do docker image rm $image done echo "针对镜像名 $image_name:旧的镜像已删除,只保留最近的两个镜像。" else echo "针对镜像名 $image_name:无需删除镜像,数量未超过3个。" fi done ``` 这个修改后的脚本使用了 `awk` 命令来提取镜像名,并进行完整匹配。这样可以确保镜像名的准确性,避免了部分匹配的问题。 请再次尝试执行脚本,看看是否能够正常删除旧的镜像并保留最近的两个镜像。如果还有其他问题,请随时告诉我。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值