使用docker compose时,我似乎无法重置数据库。我试过杀死服务器,只杀死数据库,然后重新启动机器。
任何人都知道清除开发数据库的最佳方法吗?
这是我试过的:
docker-compose run web rake db:reset
我收到此错误:
PG :: ObjectInUse:错误:无法删除当前打开的数据库 :DROP DATABASE如果存在“postgres” 无法删除数据库'postgres' 耙子流产了!
我正在使用docker-compose quickstart所描述的设置:https://docs.docker.com/compose/rails/
我有一个rails容器和一个postgres容器
答案 0 :(得分:7)
您使用的是错误的数据库。
数据库postgres
通常不用于用户数据,但出于管理目的。例如,如果要删除数据库,则必须连接到PostgreSQL数据库集群中的其他数据库才能发出SQL语句DROP DATABASE
。通常,数据库postgres
用于此目的,我毫不怀疑Docker在尝试删除数据库时完全执行此操作。
如果您确实要删除数据库postgres
,则必须连接到群集中的其他某个数据库。但是,正确的解决方案是将数据保存在不同的数据库中。那么问题本身就会消失。