【发布时间】:2022-01-24 02:38:35
【问题描述】:
我正在尝试创建一个 init.sql 文件来自动创建用户、数据库、模式和表。目前,用户和数据库已创建,但我的架构和表有问题。请参阅下面的代码:
码头工人撰写:
postgres_db:
image: postgres:14.1
restart: unless-stopped
environment:
POSTGRES_USER: ${SERVER_DB_USER}
POSTGRES_PASSWORD: ${SERVER_DB_PASS}
volumes:
- ./data/postgres:/var/lib/postgresql/data
- ./admin/config:/docker-entrypoint-initdb.d
ports:
- "5432:5432"
networks:
- bypass
/admin/config 中的 init.sql 文件:
CREATE USER bypass;
CREATE DATABASE bypass;
GRANT ALL PRIVILEGES ON DATABASE bypass TO bypass;
\c bypass;
CREATE SCHEMA bypass_project;
CREATE TABLE bypass_project.Bypass_Data (
id serial PRIMARY KEY,
Date_Time TIMESTAMP,
Module VARCHAR(25),
Area VARCHAR(25),
);
运行 docker-compose up 后,我无法看到架构和表格。我很确定\c bypass 使用不正确。如何连接到旁路数据库并在那里创建所有内容?
【问题讨论】:
-
你确定要在这里做吗?通常它是在应用程序级别通过一些迁移机制完成的。
-
我绝对是数据库管理的新手。我正在制作一个应用程序,它将不断地将数据从 Python 写入 Postgresql。我假设必须先构建数据库结构,然后数据才能流入其中。放入 init.sql 文件的最佳做法是什么?我将在哪里填充其他项目?
标签: postgresql docker ddl init