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'));

总结

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

相关推荐
chushiyunen15 分钟前
postgresql安装timescaledb替代influxdb功能、查看已安装的插件
数据库·postgresql
汪汪大队u37 分钟前
从 Docker Compose 到 Kubernetes:物联网管理系统迁移实战(3)—— 两个运维坑
运维·docker·kubernetes
雨田大大38 分钟前
Windows11下IDEA运行后端时,端口被占用的解决方法
linux·运维·服务器
smileNicky41 分钟前
CentOS 8 安装 Docker 超详细教程
docker·eureka·centos
IKun-bug41 分钟前
CentOS 7 安装 Claude Code 指南
linux·运维·centos
上海云盾-小余1 小时前
服务器入侵应急处置:痕迹清理、漏洞封堵与事后加固全流程
运维·服务器
风曦Kisaki1 小时前
# Linux运维Day02:LNMP架构部署、动静分离原理、Nginx地址重写、systemd服务管理
linux·运维·架构
Shadow(⊙o⊙)1 小时前
Linux进程地址空间——钻入Linux内核架构性剖析 硬核手搓!
java·linux·运维·服务器·开发语言·c++
大明者省1 小时前
乌邦托服务器系统www不同文件夹bird、infra建立隔离的虚拟环境
linux·运维·服务器
MXsoft6181 小时前
**降本增效两不误:精细化运维助力业务持续增长**
运维