登录 主页

在 docer postgres 里面导入数据

2024-08-06 05:24PM

1. 查看 docker 中运行的 postgres

$ sudo docker ps
CONTAINER ID   IMAGE      COMMAND                  CREATED        STATUS       PORTS      NAMES
f7dc4dbdf06e    postgres   "docker-entrypoint.s…"   18 hours ago   Up 5 hours   5432/tcp   objective_jang

2. 将本地 /tmp/ 文件夹下面的 20240805.sql 文件复制到 Docker 容器中

sudo docker cp ./tmp/20240805.sql f7dc4dbdf06e:/tmp/

3. 进入 Docker 容器的 bash 终端

sudo docker exec -it f7dc4dbdf06e /bin/bash

4. 在容器内部使用 psql 命令连接 PostgreSQL 数据库

psql -U postgres

5. 删除 dongtaipaifang 数据库

DROP DATABASE IF EXISTS dongtaipaifang; 

5.1 如果报错说:

ERROR:  database "dongtaipaifang" is being accessed by other users
DETAIL:  There is 1 other session using the database.

则使用下面这个命令:

SELECT pg_terminate_backend(pid) 
FROM pg_stat_activity 
WHERE datname = 'dongtaipaifang';

然后再重新删除数据库

postgres=# DROP DATABASE IF EXISTS dongtaipaifang; 
DROP DATABASE

6. 创建 dongtaipaifang 数据库

CREATE DATABASE dongtaipaifang;

7.退出psql 会话

postgres=# \q

7. 将 SQL 文件导入 dongtaipaifang 数据库

root@4510a9e8d123:/# psql -U postgres -d dongtaipaifang -f /tmp/20240805.sql

 

返回>>

登录

请登录后再发表评论。

评论列表:

目前还没有人发表评论