导出(windows 需要管理员身份运行)
1.pg_dump 导出单个表结构
- –schema-only 表示只包含表结构
pg_dump -h localhost -U postgres -d next_ecdis -t public.b_book_entry --schema-only > D:\syncSql\b_book_entry_structure.sql
2.命令行导出整个表数据(需要进入psql 命令行)
# docker exec -it postgresql bash (如果是docker)
psql -U postgresql -d next_ecdis
导出csv数据到指定路径
COPY (SELECT * FROM b_book) TO 'D:\syncSql\bBook.csv' CSV HEADER;
导入
1.将上面到处的文件拷贝到需要更新的服务器上
以我为例 我使用的docker 需要把文件拷贝到主机上在放到docker 主机里
docker cp /opt/file.csv <container_id>:/usr/file.csv -- 把文件放在虚拟机的usr/file.csv 路径下
1.进入 psql命令行
# docker exec -it postgresql bash (如果是docker)psql -U postgres -d next_ecdis (进入数据库)
- 导入表结构
i\ usr/b_book_entry_structure.sql
- 导入指定表数据
copy public.b_book from '/usr/bBook.csv' WITH CSV HEADER;
另外一种方法 导出整个库 包含结构 和数据
- 导出
pg_dump -U postgres -W -F c -b -v -f nextEcdis.backup next_ecdis
导入前需要先删除整个库
确保没有其他客户端连接该库 否则删不掉
-- 删除数据库DROP DATABASE mydb;
- 导入
pg_restore -U postgres -d next_ecdis -v /usr/nextEcdis.backup