Docker инициализирует таблицы базы данных и записи в SQL Server - PullRequest
0 голосов
/ 09 октября 2019

Как указать сценарий базы данных инициализации для SQL Server через docker-compose с помощью файла сценария SQL?

docker-compose.yml

database:
    image: microsoft/mssql-server-linux:2017-latest
    container_name: database
    ports:
      - 1433:1433
    volumes:
      - /var/opt/mssql
    environment:
      SA_PASSWORD: "P@55w0rd"
      ACCEPT_EULA: "Y"

schema.sql

CREATE TABLE Department
(
    Id INT PRIMARY KEY IDENTITY (1, 1),
    Name VARCHAR (50) NOT NULL
);

CREATE TABLE Student
(
    Id INT PRIMARY KEY IDENTITY (1, 1),
    Name VARCHAR (50) NOT NULL
);

CREATE TABLE Course 
(
    Id INT PRIMARY KEY IDENTITY (1, 1),
    Name VARCHAR (50) NOT NULL
);

INSERT INTO Student (Id, Name) VALUES(1, "John Doe");
INSERT INTO Student (Id, Name) VALUES(2, "Jane Doe");

1 Ответ

0 голосов
/ 09 октября 2019

Если вы проверяете официальный документ , он предлагает использовать mssql-docker-demo-app , который содержит скрипт точки входа , как контейнер MySQL.

import-data.sh

Сценарий import-data.sh - это удобный способ отложить выполнение команд SQL до запуска SQL Server. Обычно запуск SQL Server занимает около 5-10 секунд, и он готов к подключению и командам.

Следующая команда использует утилиту командной строки SQL Server sqlcmd для выполнения некоторых команд SQL, содержащихся в файле setup.sql.

Сценарий setup.sql создаст новую базу данных с именем DemoData и таблицу с именем Products в схеме dbo по умолчанию.

setup.sql

setup.sql определяет несколько простых команд для создания базы данных и несколько простых схем. Вы можете использовать файл .sql, как этот, для других целей, таких как создание логинов, назначение разрешений, создание сохраненныхпроцедуры и многое другое. При создании базы данных в производственных ситуациях вы, вероятно, захотите более точно указать, где создаются файлы базы данных, чтобы файлы базы данных сохранялись в постоянном хранилище. Этот сценарий SQL создает таблицу с двумя столбцами -

ID (integer) and ProductName (nvarchar(max)).

CREATE DATABASE DemoData;
GO
USE DemoData;
GO
CREATE TABLE Products (ID int, ProductName nvarchar(max));
GO
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...