Docker,错误:无法运行迁移:数据库需要引导;

Posted

技术标签:

【中文标题】Docker,错误:无法运行迁移:数据库需要引导;【英文标题】:Docker,Error: cannot run migrations: database needs bootstrapping; 【发布时间】:2019-09-09 12:14:08 【问题描述】:

这是我尝试过的

docker run --rm \
> --link kong-database:kong-database \
> -e "KONG_DATABASE=postgres" \
> -e "KONG_PG_HOST=kong-database" \
> kong:latest kong migrations up

但我有

Error: cannot run migrations: database needs bootstrapping; run 'kong migrations bootstrap'

我不明白这实际上意味着什么。如果我尝试

docker run --rm --link kong-database:kong-database -e "KONG_DATABASE=postgres" -e "KONG_PG_HOST=kong-database" kong:latest kong migrations bootstrap
bootstrapping database...
Error: [PostgreSQL error] failed to bootstrap database: ERROR: syntax error at or near "NOT" (150)

我检查了 kong-database

 
        "Id": "d94ac442da9a399c1b865de49904e01085abe1ed8f0871af5830810c4c2a78dd",
        "Created": "2019-04-19T07:18:59.534751317Z",
        "Path": "docker-entrypoint.sh",
        "Args": [
            "postgres"
        ],
        "State": 
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 18342,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2019-04-19T07:19:00.129193458Z",
            "FinishedAt": "0001-01-01T00:00:00Z"

为什么我需要引导数据库,为什么会出现问题?

【问题讨论】:

【参考方案1】:

您必须在运行 kong 之前引导数据库。 up 命令已弃用并替换为 bootstrap

改变

kong:latest kong migrations up

kong:latest kong migrations bootstrap

【讨论】:

以上是关于Docker,错误:无法运行迁移:数据库需要引导;的主要内容,如果未能解决你的问题,请参考以下文章

NodeJS sequelize 自动生成模型并运行迁移 SQL 语法错误

在 Jenkins 中使用 docker Container 链接

我无法在我的 docker compose 中进行 mysql php artisan 迁移。错误 SQLSTATE[HY000] [2002]

如何使用 Docker 在 SQL Server 数据库上运行 EF Core 迁移?

如何为在 docker 容器内运行的 corda 节点运行迁移脚本?

MySQL数据库的Laravel迁移“无法添加外键约束”错误