【问题标题】:Docker & PostgreSQL : can not create database having '-' in database name during initializationDocker & PostgreSQL:初始化期间无法创建数据库名称中包含“-”的数据库
【发布时间】:2016-02-24 10:09:43
【问题描述】:

我已经在 docker 镜像中安装了 PostgreSQL 9.4.6,docker 版本为 1.10.1。根据这张官方图片: https://github.com/docker-library/postgres/blob/443c7947d548b1c607e06f7a75ca475de7ff3284/9.4/Dockerfile 正如这里所说,为了创建初始数据库,我在“/docker-entrypoint-initdb.d”中添加了我的 sql 脚本。 https://hub.docker.com/_/postgres/ 现在遇到一些麻烦后,我发现当我在数据库名称具有 '-' 的 sql 脚本中添加查询以创建数据库时,它们只会导致容器崩溃(即容器在启动后立即退出)。 但是在数据库名称中没有“-”的查询工作正常,容器也不会崩溃,我可以访问这些数据库。 例如,此查询运行良好。

create database 1stName_2ndName with owner vagrant;

但我分别尝试了这两个查询,但两种情况都失败了

create database '1stName-2ndName' with owner vagrant;

create database 1stName-2ndName with owner vagrant;

注意:考虑不带双引号的查询。 vagrant 用户已经创建并且工作正常。

我有一个名为 1stName-2ndName 的数据库。谁能帮我解决这个问题?

【问题讨论】:

  • 当我在 sql 文件中添加 sql 查询时......数据库名称有“-”(连字符)......docker 容器在启动后立即退出。但是,当我从 sql 文件中的数据库名称中删除“-”(连字符)时,容器运行正常,我可以使用 docker exec 访问和查看容器内的数据库。实际上最后两个查询是相同的。我的意思是..我尝试了两种方式。我将尝试使用 " 和 `` 转义数据库名称并让您知道。

标签: database docker dockerfile postgresql-9.4


【解决方案1】:

在我的本地 Postgres 安装中,以下查询可以正常工作:

create database "1stName-2ndName" with owner vagrant;

【讨论】:

    猜你喜欢
    • 2013-03-10
    • 1970-01-01
    • 2019-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多