postgres在docker中使用

记录个人开发过程中postgres在docker中的使用,以便后续查看。

Dockerfile

个人是在M1电脑上开发,所以platform使用linux/amd64来兼容amd芯片。

shell 复制代码
FROM --platform=linux/amd64 postgres:16.1-alpine
COPY ./poetrydb.sql /docker-entrypoint-initdb.d/poetrydb.sql

初始化脚本

创建表时,数据使用jsonb的方式来存储数据,这样就可以少见很多列

poetrydb.sql:

sql 复制代码
DROP TABLE IF EXISTS "public"."tbl_poetry";
CREATE TABLE "public"."tbl_poetry" (
	"id" uuid NOT NULL,
	"data" jsonb NOT NULL
)
WITH (OIDS=FALSE);
ALTER TABLE "public"."tbl_poetry" OWNER TO "postgres";

-- ----------------------------
--  Primary key structure for table tbl_poetry
-- ----------------------------
ALTER TABLE "public"."tbl_poetry" ADD PRIMARY KEY ("id") NOT DEFERRABLE INITIALLY IMMEDIATE;

打包命令

docker.sh:

shell 复制代码
 #!/bin/bash
 docker build -t xxx/poetry_db:1.0.0 .
 docker push xxx/poetry_db:1.0.0

开发打包

执行sh docker.sh打包并push镜像。

图形化链接工具

使用navicat Premium

Navicat Premium 是一套数据库管理工具,让你以单一程序同时连接到 MySQL、MariaDB、SQL Server、SQLite、Oracle 和 PostgreSQL 数据库。 此外,它与 Drizzle、OurDelta 和 Percona Server 兼容,并支持 Amazon RDS、Amazon Aurora、Amazon Redshift、SQL Azure、Oracle Cloud、Google Cloud和 OceanBase 等云数据库。

点击链接,选择PostgreSQL

输入链接名、主机、端口、数据库,用户名和密码,点击测试链接,成功后点击保存

然后链接数据库就能看到数据啦

索引

如果数据量多找到查询变慢,可以对某些字段添加索引,比如:

sql 复制代码
CREATE INDEX index_createTime ON tbl_poetry  USING gin ((data->'createTime'));

总结

总体来说还是比较简单的。

相关推荐
许白掰1 小时前
Linux入门篇学习——Linux 工具之 make 工具和 makefile 文件
linux·运维·服务器·前端·学习·编辑器
B1nna2 小时前
Docker学习
学习·docker·容器
缘友一世2 小时前
网安系列【15】之Docker未授权访问漏洞
docker·容器
AmosTian8 小时前
【系统与工具】Linux——Linux简介、安装、简单使用
linux·运维·服务器
YC运维9 小时前
RIP实验以及核心原理
运维·网络·智能路由器
慕木兮人可9 小时前
Docker部署MySQL镜像
spring boot·后端·mysql·docker·ecs服务器
leo__52010 小时前
自动化运维:使用Ansible简化日常任务
运维·自动化·ansible
霖0010 小时前
C++学习笔记三
运维·开发语言·c++·笔记·学习·fpga开发
CodeWithMe11 小时前
【Note】《Kafka: The Definitive Guide》 第九章:Kafka 管理与运维实战
运维·分布式·kafka