You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Docker Compose中仅针对Local环境运行种子迁移脚本?

仅Local环境执行数据库种子迁移脚本的实现方式

脚本内条件判断的常规写法

直接在你的entry-point.sh脚本里加入环境变量判断,只有当ENVIRONMENT等于local时才执行种子脚本:

# 执行通用数据库迁移
./your-migration-script.sh

# 条件执行种子脚本
if [ "$ENVIRONMENT" = "local" ]; then
  echo "Running local seed scripts..."
  ./your-seed-script.sh
fi

更简洁的短路求值写法

如果追求代码紧凑,可以用Shell的短路逻辑(&&仅在前面命令返回成功时执行后续命令),一行搞定判断:

./your-migration-script.sh
[ "$ENVIRONMENT" = "local" ] && ./your-seed-script.sh

额外优化:从Docker Compose层面隔离逻辑

如果不想在entry脚本里混入环境判断逻辑,也可以直接在docker-compose-local.yml中通过覆盖命令的方式,让local环境单独执行种子脚本:

services:
  # 假设你的迁移服务叫db-migrate
  db-migrate:
    environment:
      - ENVIRONMENT=local
    # 覆盖默认entrypoint命令,先执行迁移再执行种子脚本
    command: sh -c "./your-migration-script.sh && ./your-seed-script.sh"

这种方式下,通用的entry-point.sh只负责执行基础迁移,local环境的额外逻辑完全由Docker Compose配置来控制,脚本本身更干净。

内容的提问来源于stack exchange,提问作者Nick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 12:10:31