【发布时间】:2020-01-28 04:24:31
【问题描述】:
我正在尝试启动版本为 10.5 的 postgresql docker 容器。
但在此之前,我在同一个 docker-compose.yml 文件中使用了 9.6 版本,并且数据库中没有填充数据。
现在更改 postgres 容器 的版本后,我无法运行 docker-compose up。它抛出以下错误。
致命:数据库文件与服务器不兼容
DETAIL:数据目录由 PostgreSQL 版本 9.6 初始化, 与此版本 10.5 不兼容(Debian 10.5-2.pgdg90+1)
这就是 docker-compose.yml 文件的样子。
version: '2'
services:
postgres_service:
container_name: postgresql_container
restart: always
image: postgres:10.5
volumes:
- postgres-data:/var/lib/postgresql/data
- ./postgresql/init:/docker-entrypoint-initdb.d
ports:
- "5432:5432"
environment:
- POSTGRES_USER=admin
- POSTGRES_PASSWORD=password
volumes:
postgres-data:
driver: local
谁能告诉我问题出在哪里。我在哪里犯错? 在继续使用新的 postgres 版本之前,我是否需要删除任何卷?
我的本地也安装了 postgresql。
postgres=# select version();
version
-------------------------------------------------------------------------------------------------------------------------------------
PostgreSQL 10.10 (Ubuntu 10.10-1.pgdg18.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0, 64-bit
(1 row)
这会导致任何问题吗?
【问题讨论】:
-
Do I need to delete any volumes before proceeding with the new postgres version?:是的,你应该这样做。 -
是的。我刚刚删除了
/var/lib/postgresql/10/main/。但仍然遇到同样的问题。那是应该删除的卷吗?我的机器上没有看到任何/var/lib/postgresql/data。 -
似乎您正在将卷映射到项目中的文件夹。
postgres-data这个,删除它,因为当您重新启动容器时,该文件夹中的所有文件都将映射到您的 postgresql 容器中 -
我的机器中没有看到任何
postgres-data文件夹。不确定它在哪里。不在项目文件夹或root - / -
对不起,我的错误。下面我给你答案
标签: postgresql docker docker-compose dockerfile postgresql-9.5