我认为最好的选择可能是重新评估,为什么你的迁移依赖于特定的数据被先前接种的,但无论我相信你可以做到你通过files
关键想要什么。
像这样的东西可能会诀窍 - 我复制12_db_migration.sh
并修剪它只是做种子。通过将前缀设置为09_
它将在迁移之前运行。
files:
"/opt/elasticbeanstalk/hooks/appdeploy/pre/09_seed_database.sh":
mode: "000755"
owner: root
group: root
content: |
#!/usr/bin/env bash
EB_SCRIPT_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k script_dir)
EB_APP_STAGING_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k app_staging_dir)
EB_APP_USER=$(/opt/elasticbeanstalk/bin/get-config container -k app_user)
EB_SUPPORT_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k support_dir)
. $EB_SUPPORT_DIR/envvars
. $EB_SCRIPT_DIR/use-app-ruby.sh
cd $EB_APP_STAGING_DIR
su -s /bin/bash -c "leader_only bundle exec rake db:seed" $EB_APP_USER
container_commands在appdeploy/pre hooks执行后执行。这不是我想要的。 – user2076106