如何为postgres docker容器的初始化脚本指定当前工作数据库?

2023-12-01

众所周知,可以使用类似于以下命令的 docker 命令复制要在创建容器时执行的 init.sql 文件:COPY init.sql /docker-entrypoint-initdb.d/

让我们考虑使用一个非常简单的 create table postgresql 语句:

CREATE TABLE films (
  code        char(5) CONSTRAINT firstkey PRIMARY KEY,
  title       varchar(40) NOT NULL,
  did         integer NOT NULL,
  date_prod   date,
  kind        varchar(10),
  len         interval hour to minute
);

问题是where(在哪个数据库中)创建了该表?

但更重要的是如何设置当前工作数据库准确指定我们正在使用哪个数据库?
不仅是这句话,还有后来的所有言论,而且还很多!


这里详细解释了数据库的初始化。如何在 Docker Postgres 脚本中创建用户/数据库.

简而言之,初始化期间创建的数据库的名称以及默认创建表的位置由环境变量给出POSTGRES_DB。如果变量没有设置默认值postgres被用来代替。

中的脚本docker-entrypoint-initdb.d文件夹一一执行,命令如下:

psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" -f <your-file>

因此您已连接到POSTGRES_DB数据库(看看docker-entrypoint.sh脚本)。

在脚本文件中,您仍然可以使用元命令连接到不同的数据库

\connect DBNAME
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何为postgres docker容器的初始化脚本指定当前工作数据库? 的相关文章

随机推荐

  • fetch() 在 Firefox 中使用 SSL 客户端身份验证失败

    我有一个使用 SSL 客户端身份验证的 Web 服务器 该服务器上的网页具有同源性GET请求使用fetch API 在 Chrome 中 客户端证书按照预期在 SSL 握手中发送 从而产生 200 ok 响应 在 Firefox 中 不会发
  • 如何在触摸屏上关闭 Windows 8.1 手势和设置超级按钮栏

    我安装了戴尔触摸屏和 Windows 8 1 单语言 当我将手指从右边缘向中间移动时 Windows 8 将调出设置超级栏 或者当我将手指从中上边缘向下移动时 Windows 8 会隐藏我的应用程序并调出开始菜单 这是一个问题 因为我正在
  • JSON复杂类型,可以是一个对象或对象数组[重复]

    这个问题在这里已经有答案了 我正在尝试处理一个对象 该对象可以是对象数组 也可以只是对象 仅当 naics 是对象而不是数组时 使用下面的代码才有效 我究竟做错了什么 这是我能想到的最短的例子 section 52 219 1 b naic
  • 如何在 Xcode 4.2 上为 IOS 5 创建 UITableView?

    上周我下载了 Xcode 4 2 所以当我开始构建应用程序时 我尝试添加一个UITableView到我的一个项目 就像我开始开发以来一直在做的那样 但是UITableView不工作 我一直在寻找教程 但没有找到任何教程 如何在 Xcode
  • python 基于键匹配合并字典的最快方法

    我有 2 个字典列表 列表 A 长 34 000 列表 B 长 650 000 我本质上是根据键匹配将所有列表 B 字典插入到列表 A 字典中 目前 我正在做显而易见的事情 但这需要很长时间 说真的 就像一天一样 一定有更快的方法 for
  • 如何从秘密管理器获取私钥?

    我需要在 AWS 中存储私钥 因为当我从 AWS 创建 ec2 实例时 我需要使用此主键在配置程序 remote exec 中进行身份验证 我不想保存在存储库 AWS 中 在 Secret Manager 中保存私钥是个好主意吗 然后吃掉它
  • 调用存储过程 Mysql 时命令不同步

    我有两个存储过程 我需要对记录进行分页 比如选择下一个n记录 到选择所有匹配记录的第一个 CREATE PROCEDURE trans all IN varphone VARCHAR 15 BEGIN Select loans amt lo
  • 如何将 dicom 文件转换为 jpg

    我们如何使用java将dicom文件 dcm 转换为jpeg图像 这是我的代码 import java io File import java io IOException import org dcm4che2 tool dcm2jpg
  • Inno Setup 中的全屏背景图像

    如何在 Inno Setup 编译器中为我们的设置提供背景全屏图像 就像下面这张图一样 不要那样做 这违反了 Windows 设计准则 无论如何 如果必须的话 请使用旧版全屏安装程序模式WindowVisible yes指示然后通过修改 现
  • 在 JupyterLab 中扩展代码片段的键盘快捷键

    有谁知道如何创建一个快捷方式 将特定代码粘贴到选定的单元格或将片段扩展为代码块 例如 当按下类似的内容时 我想用有用的导入列表填充单元格Ctrl Shift M 这会将单元格内容扩展为 import numpy as np import p
  • 将多个 Bootstrap 菜单合并为一个移动设备菜单?

    我一直在看这个之前提出的问题 在折叠时合并多个 Bootstrap 3 导航栏菜单 正如您所见 它为这个问题提供了一个很好的解决方案这把小提琴 问题是对于我当前的布局来说 这个解决方案并不完美 它的显示方式如下 它适用于我想的其他场景 但在
  • Jw播放器视频分析,无需上传视频

    是否可以在不将内容上传到 jw 播放器的情况下进行视频分析 取决于您想在哪里查看分析 如果您想在您的JW 玩家帐户仪表板 您需要上传视频或添加外部内容 URL 请参见https support jwplayer com customer p
  • 在ios上混合音频

    我正在尝试混合音频源 这样就不会出现音频闪避 我试图解决的用例是在后台进行音频通话 同时播放音乐和 或收听应用程序音频 没有任何音频闪避 音频闪避是指音频稍微降低并失真以帮助收听另一个音频会话 我可以取消音频和音频混合 或 iOS 吗 我已
  • Rails:“权限被拒绝 - /tmp/cache/assets/development/sprockets/...”?

    当我运行 Rails 应用程序并使用浏览器导航到它们时 我收到错误rails Permission denied path to my rails app tmp cache assets development sprockets 37b
  • Android 无尽列表

    如何创建一个列表 当您到达列表末尾时我会收到通知 以便我可以加载更多项目 一种解决方案是实施OnScrollListener并进行更改 例如添加项目等 ListAdapter处于方便的状态onScroll method 下列ListActi
  • 从 Visual Studio 将文件添加到 WP7 独立存储?

    我正在开发一个 Windows Phone 7 应用程序 我将在其中使用 bing 地图显示您所在位置的 ATM 我有一个包含地址和 GPS 坐标的 xml 文件 但是如何从 Visual Studio 将此文件添加到我的程序中 如果我将
  • 关闭连接之前关闭阅读器

    您是否应该始终在关闭连接之前关闭 DataReader 还是直接关闭连接就可以了 通过关闭连接是否会有效地关闭读者 这是针对 c net 3 5 的 Thanks 除了明确你的意图之外 Microsoft 文档中还提到了这一点 使用 Dat
  • Chrome 上的 Angular2 Table Row 组件以单列显示

    使用中的版本 角2 0 1 角度 cli 1 0 0 beta 17 我有一个页面分为 3 个组件 页面大纲是一个具有自己的布局 包括行 的表格 其中一行包含行组件 在 IE 中 表格显示良好 在 Chrome 中 组件行中的所有数据都显示
  • ObjectContext 实例已被释放 - Winforms Entity Framework

    I am trying to solve this problem and did read content regarding this error but was unable to figure out a solution I am
  • 如何为postgres docker容器的初始化脚本指定当前工作数据库?

    众所周知 可以使用类似于以下命令的 docker 命令复制要在创建容器时执行的 init sql 文件 COPY init sql docker entrypoint initdb d 让我们考虑使用一个非常简单的 create table