postgresql - docker compose启动时如何创建表postgresql
问题描述
我知道这个问题已经被问到并且也给出了答案。但这对我不起作用。我也是这样。我的 postgres 容器运行良好。我在容器内部检查了 /docker-entrypoint-initdb.d/init.sql 存在。我使用了以下 docker-compose.yml。
version: "3"
services:
postgres:
image: postgres:latest
network_mode: bridge
container_name: postgres
expose:
- 5432
ports:
- 5432:5432
volumes:
- ./init.sql:/docker-entrypoint-initdb.d/init.sql
environment:
- POSTGRES_PASSWORD=admin
- POSTGRES_USER=postgres
- POSTGRES_DB=dev
restart: unless-stopped
# APP
profile_editor2:
build:
context: .
dockerfile: ./Dockerfile
network_mode: bridge
container_name: profile_editor2
volumes:
- ./image:/app/image
expose:
- 8080
ports:
- 8080:8080
restart: unless-stopped
depends_on:
- postgres
links:
- postgres
volumes:
postgres-data:
init.sql:-
create table sometable(id int);
没有创建表。我只能看到创建了数据库。我如何创建一个表,如果可能的话,如何在表中插入一些数据?
解决方案
您可以按以下顺序在 init.sql 中编写查询:-
DROP DATABASE IF EXISTS test_db;
CREATE DATABASE test_db;
\c test_db;
CREATE TABLE Role(
RoleID SERIAL PRIMARY KEY,
RoleName varchar(50),
);
insert into Role(RoleName)
values ('Admin'),('User');
推荐阅读
- python - Pandas 通过根据另一列的值添加列级别来重塑数据框
- python - 如果值在python中为真,则返回值
- java - 为什么我的内部对象自定义验证器不用于验证?
- android - Why can kotlin coroutines operate UI elements on another thread
- c# - How to replace element in MeshRenderer.sharedMaterials
- mongodb - 使用带有 Mongo 连接器的 mapPartitions 时出现“IllegalStateException:状态应该是:打开”
- python - 我将如何改进我的模型,使其适用于更多不在数据集中的字符?
- javascript - 在pdfkit中将图像放在另一个上
- facebook - 无法通过 Facebook 应用审核 - 我该怎么办?
- go - 同步原语原子包