当尝试将ArangoDB 3.1的docker容器升级到3.2时,我遇到了需要升级的数据库的问题:
FATAL Database '_system' needs upgrade. Please start the server with the --database.auto-upgrade option
FATAL Database '_system' upgrade failed. Please inspect the logs from the upgrade procedure
我如何实际通过该设置?我尝试在command: 'arangod --database.auto-upgrade true
中设置docker-compose.yml
,但这没有任何效果。
答案 0 :(得分:4)
我也在我的系统中使用docker-compose,其中arangodb在服务名称44 74 65 6d 70
下运行,如下所示:
database
在升级之前,我还必须停止我的系统。 我刚刚使用以下步骤升级了我的arangodb容器(3.1.3 => 3.2.5)
version: '2.1'
services:
database:
image: arangodb:3.1.3
ports:
- 8529:8529
volumes:
- /opt/my-system/Database/arangodb:/var/lib/arangodb3
- /opt/my-system/Database/arangodb-apps:/var/lib/arangodb3-apps
restart: always
healthcheck:
test: curl -f my-system:8529/_api/version || exit 1
.
.
. other services
=>获取要升级到的图像docker pull arangodb:3.2.5
=>停止使用数据库的系统docker-compose stop
=>删除运行旧arangodb的容器docker-compose rm -f database
变为image:arangodb:3.1.3
image:arangodb:3.2.5
=>这将创建运行v3.2.5的数据库容器,升级数据库文件,然后在完成后删除容器。docker-compose run --rm database arangod --database.auto-upgrade
=>启动升级后的数据库以查看是否一切正常docker-compose up -d database
=>启动系统的其余部分,现在使用已升级的数据库如果我在升级期间遇到错误,我可以轻松回滚到v3.1.3,因为我总是保留prev image和数据库文件。 希望这有帮助!