当前位置: 首页 > 面试题库 >

docker-compose rails rake db:reset失败,“无法删除当前打开的数据库”

柯冯浩
2023-03-14
问题内容

使用docker compose时,我似乎无法重置数据库。我尝试杀死服务器,仅杀死数据库,然后重新启动计算机。

有人知道清除开发数据库的最佳方法吗?

这是我尝试过的:

docker-compose run web rake db:reset

我收到此错误:

PG :: ObjectInUse:错误:无法删除当前打开的数据库:如果存在“ postgres”,则删除数据库无法删除数据库“
postgres”耙中止!

我正在使用与docker-
compose快速入门完全相同的设置:https :
//docs.docker.com/compose/rails/

我有一个Rails容器和一个postgres容器


问题答案:

您使用了错误的数据库。

该数据库postgres通常不用于用户数据,而是用于管理目的。例如,如果要删除数据库,则必须连接到PostgreSQL数据库集群中的其他数据库才能发出SQL语句DROP DATABASE。通常,数据库postgres是用于此目的的,毫无疑问,Docker在尝试删除数据库时确实做到了这一点。

如果您确实要删除数据库postgres,则必须连接到集群中的其他数据库。但是,正确的解决方案是将数据保留在其他数据库中。然后问题应自行解决。



 类似资料:
  • 问题内容: 我试图像这样删除当前连接的数据库,但出现此错误: 如果必须关闭连接,我不太了解如何删除数据库,因为那样我就无法使用dbConn.Exec执行我的DROP DATABASE语句? 我想我可以连接到另一个数据库,然后在该连接上执行它,但是我什至不确定那是否行得通,而且似乎只是为了删除另一个数据库而不得不连接到新数据库似乎很奇怪。有任何想法吗?谢谢。 问题答案: 因为,您正在尝试对已打开连接

  • 问题内容: 我无法删除失效的容器,重新启动Docker服务后,它将再次出现。 然后 然后,当我运行docker ps -a时,没有显示docker容器。 但是,当我重新启动docker服务时: 然后再次运行docker ps -a: 问题答案: 最有可能的是,当守护程序尝试清理容器时发生错误,并且他现在陷入了“僵尸”状态。 恐怕您唯一的选择是手动清理它: 哪里是你的驱动程序的名称(,,,或)。

  • 所以我正在为JDA制作一个斜杠命令库,由于某些原因,我找不到任何关于从公会中删除斜杠命令的文档。让我解释一下。 所以我使用来注册命令。但是我想知道的是,如果公会有一个叫这个名字的命令,我想从公会中删除这个命令,这样旧的和新的就不会混淆了。 干杯探员

  • 在MySQL中,我想删除一个表。 我尝试了很多方法,但我总是得到一个错误,即不能删除名为的表。这是我得到的错误: #1217-无法删除或更新父行:外键约束失败 我怎么放下这张桌子?

  • 我试图从Kubernetes Web UI上的页面中删除一个失败的pod,但它没有被删除。 有没有其他方法可以删除这个豆荚?

  • 问题内容: 设置新的构建机器(CentOS 7,Docker CE 17.12.0-ce)时,我做了一个简单的测试: 效果很好,但是现在我无法删除Ubuntu映像。 任何容器都没有使用它(总之那不是错误): 我什至尝试了nuke-from-orbit方法: 并重新启动docker守护进程: 是什么赋予了?ubuntu映像是否存在并不重要,我只是不明白为什么我无法清理它。 更新资料 我尝试再次拉出图