我有一个厨师食谱,可以在opsworks中运行迁移。它在每台服务器上运行php artisan migrate --force。有没有办法只在它发生的第一台服务器上运行一次迁移?我在任何时候都有3个在线。
答案 0 :(得分:1)
简短回答: 添加标记或属性,并将其用作执行的保护。
您还可以拥有竞争条件并在多个服务器上执行,因为索引会在主厨服务器端每分钟(大约)更新一次。
答案很长: 你必须使用一些东西来保持一个状态,从动物园管理员到任何容易更新的事实来源的任何东西都可以填补这个空白,没有关于你的环境的更多细节,任何答案都将以对答案者来说最好的方式来表达。投票结束主要是基于意见。
答案 1 :(得分:1)
您始终可以创建新的实用程序'图层(自定义图层类型),它只包含您需要的一个配方,并且只将其中一个实例附加到其中。
通过这种方式,您的主图层上有3个实例,其余的配方也是如此,其中一个实例也属于额外的图层。
您可以转到'实例'将实例附加到图层。然后添加新实例'并点击“现有实例”'标签。唯一的问题是您无法将正在运行的实例附加到图层,而是必须将其停止,然后附加它,然后重新启动它。
注意:如果您需要在部署后运行此命令,请确保在“部署”中读取了正常的部署配方。步骤,否则你冒着你的食谱在厨师run_list中没有正确顺序的风险。