当我在psql --version
容器中运行命令railsApp
时,我得到9.4.12
,当我在postgres
容器中运行该命令时,我得到{{1} }。如何才能使版本匹配?
当我尝试在执行9.6.2
sql导入的Rails应用程序上进行迁移时,我收到以下错误。
pg_dump
这是我的Docker-compose.yml文件:
pg_dump: server version: 9.6.2; pg_dump version: 9.4.12
pg_dump: aborting because of server version mismatch
rails aborted!
Dockerfile:
version: "2.1"
services:
railsApp:
build:
context: ./
ports:
- "3000:3000"
links:
- postgres
volumes:
- .:/app
postgres:
image: postgres:9.6
ports:
- "5432:5432"
volumes:
- ./.postgres:/var/lib/postgresql
答案 0 :(得分:0)
最简单的方法是在docker-compose中使用正确的postgres版本。变化:
postgres:
image: postgres:9.6
要:
postgres:
image: postgres:9.4.2
所有可用版本here。
答案 1 :(得分:0)
对我来说,同样的问题,我使用了另一种方式进行转储,
首先,我访问终端并在docker中运行pd_dump并将文件从docker复制到主机。 下面是命令
docker exec -it <container-id> /bin/bash # accessing docker terminal
pg_dump > ~/dump # taking dump inside the docker
docker cp <container-id>:/root/dump ~/dump #copying the dump files to host
希望以上解决方案有帮助。