当前位置: 首页 > article >正文

docker创建postgreSql带多个init的sql

好的!下面是一个完整的可运行项目结构,包含:

  • docker-compose.yml:启动 PostgreSQL(支持 pgvector)

  • init-db.sql:创建数据库 myapp

  • init-schema.sql:在 myapp 中建表并初始化数据

  • ✅ 自动执行顺序正确,无需手动干预


🗂 项目结构

your-project/
├── docker-compose.yml
├── init-db.sql
├── init-schema.sql
└── data/                <-- 容器初始化后生成(不要提前创建)

📄 1. docker-compose.yml

version: "3.8"services:postgres:image: pgvector/pgvector:pg16container_name: my-postgresenvironment:POSTGRES_PASSWORD: rootports:- "5432:5432"volumes:- ./data:/var/lib/postgresql/data- ./init-db.sql:/docker-entrypoint-initdb.d/01-init-db.sql- ./init-schema.sql:/docker-entrypoint-initdb.d/02-init-schema.sqlrestart: always

📄 2. init-db.sql

-- 创建数据库 myapp CREATE DATABASE myapp;

📄 3. init-schema.sql

-- 切换到 myapp 数据库
\connect myapp-- 创建用户表
CREATE TABLE users (id SERIAL PRIMARY KEY,name TEXT NOT NULL,email TEXT UNIQUE NOT NULL,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);-- 插入测试数据
INSERT INTO users (name, email) VALUES
('Alice', 'alice@example.com'),
('Bob', 'bob@example.com');

✅ 启动项目

确保当前目录下没有已有 data/ 文件夹(PostgreSQL 启动时需要创建空数据库)

docker-compose down -v     # 清除旧容器和卷(第一次运行推荐)
rm -rf ./data              # 删除旧数据目录,确保执行初始化脚本
docker-compose up -d       # 启动容器


🔎 验证

登录数据库检查数据是否已插入:docker exec -it my-postgres psql -U postgres -d myapp然后执行:\d -- 查看表 SELECT * FROM users;

相关文章:

docker创建postgreSql带多个init的sql

好的&#xff01;下面是一个完整的可运行项目结构&#xff0c;包含&#xff1a; ✅ docker-compose.yml&#xff1a;启动 PostgreSQL&#xff08;支持 pgvector&#xff09; ✅ init-db.sql&#xff1a;创建数据库 myapp ✅ init-schema.sql&#xff1a;在 myapp 中建表并初始…...

掌握 MotionLayout:交互动画开发

前言 在 Android 开发中&#xff0c;系统自带的属性动画&#xff08;如 ObjectAnimator 和 ValueAnimator&#xff09;虽然功能强大&#xff0c;但在复杂动画场景下&#xff0c;第三方动画库能提供更高效的开发体验和更丰富的效果。本文将深入解析 Lottie、MotionLayout、Andr…...

SpringBoot中缓存@Cacheable出错

SpringBoot中使用Cacheable: 错误代码&#xff1a; Cacheable(value "FrontAdvertiseVOList", keyGenerator "cacheKey") Override public List<FrontAdvertiseVO> getFrontAdvertiseVOList(Integer count) {return this.list(Wrappers.<Adve…...

iOS UIActivityViewController 组头处理

0x00 情形一 - (void)shareAction1 {// 当前 View 转成图片UIImage *image [self snapshotImage:self.view];NSArray *activityItems [image];UIActivityViewController *activityVC [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationAc…...

分布式电源接入配电网的自适应电流保护系统设计与实现

分布式电源接入配电网的自适应电流保护系统设计与实现 一、引言 随着可再生能源的快速发展,分布式电源(Distributed Generation, DG)大规模接入配电网,传统保护系统面临以下挑战: 潮流方向改变导致保护误动/拒动故障电流水平波动影响保护灵敏度多类型故障(单相/两相/三…...

鸿蒙版Taro 搭建开发环境

鸿蒙版Taro 搭建开发环境 一、配置鸿蒙环境 下载安装 DevEco 建议使用最新版本的 IDE&#xff0c;当前为 5.0.5Release 版本。 二、创建鸿蒙项目 打开 DevEco&#xff0c;点击右上角的 Create Project&#xff0c;在 Application 处选择 Empty Ability&#xff0c;点击 Ne…...

论对生产力决定生产关系的批判:突破决定论的桎梏

笔言: 在学生时代认为"生产力决定生产关系"很有道理&#xff0c;但是进入社会参与市场竞争时候&#xff0c;才发现这种想法太天真了&#xff0c;当生产力一只赔钱时候谁也不会感兴趣&#xff1b;当生产力产生利润&#xff0c;比如1%30%&#xff0c;100%&#xff0c;3…...

ESOP交易系统搭建全景指南:从合规基石到价值跃迁

第一章 重新定义ESOP&#xff1a;合规性与流动性的平衡艺术 1.1 ESOP的本质演进 传统认知误区&#xff1a;员工持股计划股权分配工具 现代定义&#xff1a; ESOP是企业资本运作的中枢神经系统&#xff0c;贯穿“激励授予→行权管理→减持流通→市值协同”全链条&#xff0c;需…...

GICv3电源管理

在符合GICv3体系结构的实现中&#xff0c;CPU接口和PE必须位于相同的电源域&#xff0c;但这不必与关联的Redistributor所在的电源域相同。 这意味着可能会出现PE及其CPU interface断电&#xff0c;而Redistributor、Distributor和its上电的情况。在这种情况下&#xff0c;GIC架…...

《TCP/IP 详解 卷1:协议》第3章:链路层

以太网和IEEE802局域网/城域网标准 IEEE802局域网/城域网标准 IEEE 802 是一组由 IEEE&#xff08;电气与电子工程师协会&#xff09;定义的局域网和城域网通信标准系列&#xff0c;涵盖了从物理层到链路层的多个网络技术。其中&#xff1a; IEEE 802.3 定义的是传统的以太网…...

centos 9/ubuntu 一次性的定时关机

方法一 # 15 表示15分钟以后自动关机 sudo shutdown -h 15方法二&#xff1a; sudo dnf install at -y # 晚上十点半关机 echo "shutdown -h now" | at 22:30 # 检查是否设置成功命令 atq [rootdemo-192 ~]# atq 1 Wed Jun 4 11:12:00 2025 a root # 取消定时计划…...

Elasticsearch从安装到实战、kibana安装以及自定义IK分词器/集成整合SpringBoot详细的教程(二)

package com.test.xulk.es.entity.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.test.xulk.es.entity.Hotel;public interface HotelMapper extends BaseMapper<Hotel> { }集成Springboot 项目里面 官方地址&#xff1a; Elasticsearch …...

Java自动类型转换的妙用

Java中的自动类型转换&#xff08;也称为隐式类型转换&#xff09;是指在不需要显式指定转换的情况下&#xff0c;Java编译器自动将一种数据类型转换为另一种数据类型。这种特性在编程中有许多妙用&#xff0c;以下是一些常见的应用场景和优点&#xff1a; 1. 简化代码 自动类…...

数据库管理-第333期 Oracle 23ai:RAC打补丁完全不用停机(20250604)

数据库管理333期 2025-06-04 数据库管理-第333期 Oracle 23ai&#xff1a;RAC打补丁完全不用停机&#xff08;20250604&#xff09;1 概念2 要求3 操作流程4 转移失败处理总结 数据库管理-第333期 Oracle 23ai&#xff1a;RAC打补丁完全不用停机&#xff08;20250604&#xff0…...

【DAY39】图像数据与显存

内容来自浙大疏锦行python打卡训练营 浙大疏锦行 知识点&#xff1a; 图像数据的格式&#xff1a;灰度和彩色数据模型的定义显存占用的4种地方 模型参数梯度参数优化器参数数据批量所占显存神经元输出中间状态 batchisize和训练的关系 作业&#xff1a;今日代码较少&#xff0…...

AI代码库问答引擎Folda-Scan

简介 什么是 Folda-Scan &#xff1f; Folda-Scan 是一款革命性的智能项目问答工具&#xff0c; 完全在浏览器中本地运行 。它使用高级语义矢量化将您的代码库转变为对话伙伴&#xff0c;使代码理解和 AI 协作变得前所未有的简单和安全。其采用尖端的 Web 技术和 AI 算法构建&…...

Kafka深度技术解析:架构、原理与最佳实践

一、 消息队列的本质价值与核心特性 1.1 分布式系统的“解耦器” 异步通信模型 代码列表 graph LRA[生产者] -->|异步推送| B[(消息队列)]B -->|按需拉取| C[消费者1]B -->|按需拉取| D[消费者2] 生产者发送后立即返回&#xff0c;消费者以自己的节奏处理消息。典…...

基于cnn的通用图像分类项目

背景 项目上需要做一个图像分类的工程。本人希望这么一个工程可以帮助学习ai的新同学快速把代码跑起来&#xff0c;快速将自己的数据集投入到实战中&#xff01; 代码仓库地址&#xff1a;imageClassifier: 图片分类器 数据处理 自己准备的分类图像&#xff0c;按照文件夹分…...

Kotlin-协程

文章目录 什么是协程协程的好处协程的挂起和恢复协程原理 什么是协程 协程是一种用户态的轻量级程序组件&#xff0c;其核心特点是通过协作式调度实现单线程内的伪并发。 协程的好处 传统的线程切换通过回调&#xff0c;Handler各种调度&#xff0c;繁琐&#xff0c;代码不清…...

pycharm 左右箭头 最近编辑

目录 经典界面&#xff1a; 快捷键 经典界面&#xff1a; 如果你使用的是新 UI&#xff08;新版 PyCharm 默认启用的&#xff09;&#xff0c;导航按钮可能被精简了&#xff0c;你可以&#xff1a; File Settings&#xff08;齿轮图标&#xff09;→ UI Appearance 或 New …...

Linux环境管道通信介绍

目录 前言 一、通信的本质 二、匿名管道 1.通信资源——文件缓冲区 2.为什么叫匿名管道&#xff1f; ​编辑 3.匿名管道的创建过程 4.pipe函数 小结 5.一些问题 1&#xff09;匿名管道为什么要求父子进程将原本的读/写权限只保留一个 2&#xff09;为什么一开始父进程要以读/写…...

DIC技术助力金属管材全场应变测量:高效解决方案

在石油管道、汽车排气系统、航空航天液压管路等工业场景中&#xff0c;金属管作为关键承力部件&#xff0c;其拉伸性能&#xff08;如弹性极限、颈缩行为、断裂韧性&#xff09;直接影响结构安全性和使用寿命。 实际应用中&#xff0c;选用合适的管材非常重要&#xff0c;通过…...

python基础day04

1.两大编程思想的异同点: 面向过程面向对象区别事物比较简单&#xff0c;可以用线性的思维去解决事物比较复杂&#xff0c;使用简单的线性思维无法解决共同点面向过程和面向对象都是解决实际问题的一种思维方式二者相辅相成&#xff0c;并不是对立的解决复杂问题&#xff0c;通…...

嵌入式学习--江协stm32day1

失踪人口回归了&#xff0c;stm32的学习比起51要慢一些&#xff0c;因为涉及插线&#xff0c;可能存在漏插&#xff0c;不牢固等问题。 相对于51直接对寄存器的设置&#xff0c;stm32因为是32位修改起来比较麻烦&#xff0c;江协课程是基于标准库的&#xff0c;是对封装函数进…...

湖北理元理律师事务所:债务化解中的心理重建与法律护航

专业法律顾问视角 一、债务危机的双重属性&#xff1a;法律问题与心理困境 在对173名债务人的调研中发现&#xff1a; 68%存在焦虑引发的决策障碍&#xff08;如不敢接听银行电话&#xff09; 42%因羞耻感隐瞒债务导致雪球效应 湖北理元理律师事务所创新采用法律-心理双轨…...

constexpr 是 C++11 引入的关键字

constexpr 是 C11 引入的关键字&#xff0c;用于在编译期进行常量表达式计算&#xff0c;从而提高程序性能和安全性。以下是其核心作用和用法&#xff1a; 一.作用 1编译期 计算 constexpr 变量或函数的值在编译时确定&#xff0c;避免运行时计算开销。例如&#xff0c;数组大…...

【更新中】(文档+代码)基于推荐算法和Springboot+Vue的购物商城

概要设计 本节规划和定义了Woodnet桌游电商平台的软件概要设计说明书&#xff0c;描述了软件的总体设计、接口设计、运行设计、系统数据库结构设计以及系统出错处理设计&#xff0c;从整体上说明了系统设计的结构层次、处理流程、系统用例等。 本系统是一个独立的系统&#x…...

六种高阶微分方程的特解(原创:daode3056)

高阶微分方程的通解是指包含所有可能解的解的表达式。对于一个 n 阶微分方程&#xff0c;其通解通常包含 n 个任意常数。这些任意常数可以通过初始条件或边界条件来确定。高阶微分方程的特解是指在通解中&#xff0c;特定地选择了一组常数&#xff0c;使得解满足给定的初始条件…...

【C++11(上)】—— 我与C++的不解之缘(三十)

一、C11 这里简单了解一下C发展好吧&#xff1a; C11是C的第二个大版本&#xff0c;也是自C98以来最重要的一个版本。 它引入了大量的更改&#xff0c;它曾被人们称为C0x&#xff0c;因为它被期待在2010年之前发布&#xff1b;但在2011年8月12日才被采纳。 C03到C11花了8年时间…...

【多线程初阶】wait() notify()

文章目录 协调多个线程间的执行顺序join 和 wait 区别sleep 和 wait 区别 wait()方法线程饿死调用 wait()唤醒 wait() notify()方法wait() 和 notify() 需对同一对象使用确保先 wait ,后 notify多个线程在同一对象上wait notify随机唤醒一个wait notifyAll()方法应用 wait() 和…...