我正在将一个RoR应用程序部署到Amazon Elastic Beanstalk (EB)。为了通过预加载数据来准备容器,我使用预部署脚本运行了一个rake任务:
container_commands:
01seed:
command: rails db:seed:dataset size=$SIZE --trace问题是,如果我使用eb create --scale 4启动四个实例,任务会运行四次,这会导致我的部署因违反唯一键约束而失败。如何为每个部署的一个实例运行任务?
发布于 2016-12-07 06:22:38
我认为你处理这件事的方式不对。即使您设法找到了每次部署运行一次rails db:seed的方法,如果您的自动伸缩规则添加了一个实例,您仍然会遇到问题。
相反,您可以修改种子文件以允许其多次运行。我已经使用first_or_create和find_or_create_by完成了这项工作,以便仅在种子数据丢失时才创建种子数据。
https://stackoverflow.com/questions/40780145
复制相似问题