sql - 使用 Docker 时如何向数据库创建虚拟数据?
问题描述
我有一个在 Docker 容器中运行的 Django 应用程序。我想在运行时用一些数据填充我的 Postgres 数据库docker-compose up
。我尝试编写一个 sql 文件:
# sql/fill_tables.sql
INSERT INTO person(name, gender)
VALUES ('testUser', 'male');
这是我docker-compose.yml
将 sql 添加到卷的地方:
db:
image: postgres
volumes:
- ./data/db:/var/lib/postgresql/data
- ./sql/fill_tables.sql:/docker-entrypoint-initdb.d/fill_tables.sql
env_file: .env
environment:
- POSTGRES_DB=$DATABASE_NAME
- POSTGRES_USER=$DATABASE_USER
- POSTGRES_PASSWORD=$DATABASE_PASSWORD
container_name: postgres_db
然而,这并没有做任何事情,我的数据库中的表保持为空。这应该如何用 Docker 完成?
解决方案
你可以用 docker-compose.yml 来做,它现在不工作的原因可能是因为你已经有一些数据在/data
.
如果/data
卷存在并且有一些数据,它不会被覆盖docker-entrypoint-initdb.d/fill_tables.sql
我想您可以./data/db:/var/lib/postgresql/data
从 docker-compose.yml 中删除该行,以查看您的数据库由fill_tables.sql
推荐阅读
- reactjs - Firebase - firestore createdAt 时间戳 - 反应
- android - 如何使用新的 androidx.lifecycle:*:2.2.0-alpha01 获取生命周期.coroutineScope
- javascript - 有没有办法在 Selenium 版本 4 和更高版本中以无头模式执行 UI 测试?
- ios - 在 AVPlayerViewController 中播放视频时单击主页按钮时如何停止关闭 iOS 应用程序
- javascript - 传播事件时如何获取按钮值
- java - 需要验证用户输入的包含字母和数字的代码
- excel - 从 Excel 打印到 pdf 时自动分页
- xenforo - XF 2.0 管理面板路径更改
- spring - 如何在没有 xml 配置的情况下创建 int-http:outbound-gateway
- powershell - 带有空格的 PowerShell 参数导致 vsts 失败