Как создать таблицу postgresql при запуске docker compose - PullRequest
0 голосов
/ 20 февраля 2020

Я знаю, что этот вопрос уже задан, а также дан ответ. Но это не работает для меня. Я следую за тем же. Мой 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);   

Таблица не создана. Я вижу, только база данных создана. Как создать таблицу, а также, если возможно, вставить некоторые данные в таблицу?

1 Ответ

0 голосов
/ 20 февраля 2020

Вы можете написать свои запросы в 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');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...