gpt4 book ai didi

postgresql - 如何使用单个 docker 命令删除和重新创建 postgres 数据库?

转载 作者:行者123 更新时间:2023-11-29 11:58:06 25 4
gpt4 key购买 nike

我正在编写一个微服务应用程序,它有一个用于 postgres 数据库的 docker 容器。我知道当将 SQL 转储到数据库时,我们在终端中使用这个 docker 命令:

cat <dump sql file> | docker exec -i <container ID> psql -U <postgres username> <database name>

我想知道是否有一个类似的 linux 终端 docker 命令,我可以从容器外部运行到:

  1. 创建名为

    的数据库
  2. 删除名为

    的数据库

甚至:

  1. 在一个命令中删除所有表以使其完全为空。

请注意,我应该能够通过主机操作系统终端 (linux) 从容器外部运行 docker 命令。

任何建议将不胜感激。提前致谢。

最佳答案

Postgres 存储在容器本地吗?如果是这样,则删除容器并重新创建它会重置您的数据库本身。如果您的数据是从本地或网络文件夹安装的,那么重置它意味着在 psql 上运行命令

您有多种选择:

  • 用外壳进入容器​​

docker exec -it <container-id> /bin/sh

然后运行 ​​psql 并在 psql 命令行中执行任何你想做的事情。

  • 直接在docker中运行psql

docker exec -it <container-id> psql -U <username> -d <database-name>

  • 在本地安装 psql 并运行它以访问 docker 中的 postgres 实例

psql -U <username> -h localhost

  • 使用 psql 运行命令

不幸的是,您不能在同一命令上删除和创建数据库,但您可以运行 2 个单独的命令

docker exec -it <container-id> psql -U <username> -d postgres -c "DROP DATABASE <dbname>;"

docker exec -it <container-id> psql -U <username> -d postgres -c "CREATE DATABASE <dbname>;"

关于postgresql - 如何使用单个 docker 命令删除和重新创建 postgres 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53974488/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com