当前位置: 首页 > article >正文

PostgreSQL 不同模式之间的数据迁移

如果你的数据库是一个多模式的管理方式,那么在使用的过程中可能会遇到这样的诉求,就是我需要将 public 模式中的数据迁移到新的模式中。下面我介绍几种方法:

/usr/pgsql-12/bin/pg_dump -h IP -p 5432 -U postgres -d xxx -n public -s -f /home/tool.sql

create schema ss0530;
do $$
declare 
rec record;
begin
for rec in
    select relname
    from pg_class
    where relkind = 'r'
    and relnamespace = 'public'::regnamespace
    -- and relname ilike '%' -- you can filter table names here
loop
    execute format(
        'alter table public.%I set schema ss0530',
        rec.relname);
end loop;
end; 
$$

下面再讲一种比较实用的方法,这种方法适合不同实例的迁移、相同实例也可以操作。通过导出备份然后修改备份文件中的模式来实现。

[postgres@master_server ~]$ /usr/pgsql-14/bin/pg_dump -h 192.168.30.140 -U postgres -d cloudhealth -t vaf1* -f /home/postgres/cloud_health.sql

[postgres@master_server ~]$ sed -i 's/\<public\>\./ss0530./g' /home/postgres/mobile_his.sql

备注:你可以模拟一些表比如一个表中有字段名称是 public 的,特别要注意一些异常修改的。


http://www.kler.cn/a/371905.html

相关文章:

  • 【python】OpenCV—findContours(4.3)
  • leetcode344. Reverse String
  • WPF的行为(Behavior)
  • arcgis pro 3.3.1安装教程
  • 【刷题11】CTFHub技能树sql注入系列
  • kotlin的this和it用法
  • Python小游戏18——中国象棋
  • 安卓13 连接usb设备后不更新ui
  • Android 应用权限管理详解
  • 【Linux】线程锁同步互斥生产消费模型
  • Windows: 如何实现CLIPTokenizer.from_pretrained`本地加载`stable-diffusion-2-1-base`
  • 网络爬虫的基本原理是什么?
  • 初始Docker
  • NVR设备ONVIF接入平台EasyCVR视频分析设备平台视频质量诊断技术与能力
  • 深入解析 MySQL 数据库:数据类型
  • Rust精简核心笔记:第二波,语法精髓部分解锁
  • 十六:Python学习笔记-- 爬虫(2)requests 模块详解
  • 装饰器怎样实现
  • LeetCode --- 420周赛
  • 大数据新视界 -- 大数据大厂之大数据重塑影视娱乐产业的未来(4 - 3)
  • linux查看系统负载情况
  • STM32--I2C外设
  • Java AQS Semaphore 源码
  • Jenkins面试整理-什么是 Jenkins?
  • kettle8.3 Oracle连接运行一段时间后:Socket read timed out
  • ClickHouse 3节点集群安装