簡體   English   中英

在 Docker 容器中運行 SQL 腳本

[英]Running SQL script in Docker container

當我使用 docker 創建 MariaDB 數據庫時,我想使用 ddl 和 dml 運行 sql 文件。 我已經在我的 docker-compose 文件中指定了我的根目錄中的文件,如下所示。

volumes:                                                   
  - "./scripts/init.sql:/docker-entrypoint-initdb.d/1.sql" 

但是,當我運行 docker-compose up 命令時,它只創建沒有表和數據的數據庫,我應該如何填充數據庫。 我找不到任何有用的資源。

編輯我嘗試了一個小的 sql 文件,只包含這個 ddl,但仍然沒有創建任何內容。

CREATE TABLE `ALARM_A` (
                                  `id` bigint(20) NOT NULL AUTO_INCREMENT,
                                  `version` bigint(20) NOT NULL,
                                  `creation_date` datetime NOT NULL,
                                  `is_new` bit(1) NOT NULL,
                                  `order_id` bigint(20) NOT NULL,
                                  PRIMARY KEY (`id`)
)

如果我在scripts/init.sql中有你的示例 SQL 腳本,並且我使用這個docker-compose.yaml

version: "3"

services:
  mariadb:
    image: mariadb:10
    volumes:
      - "./scripts/init.sql:/docker-entrypoint-initdb.d/1.sql"
    environment:
      MARIADB_ROOT_PASSWORD: secret
      MARIADB_DATABASE: example

然后我docker-compose up后等待初始化完成,我看到:

$ docker-compose exec mariadb mysql -psecret example -e "show tables"
+-------------------+
| Tables_in_example |
+-------------------+
| ALARM_A           |
+-------------------+

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM