gpt4 book ai didi

ruby-on-rails - capistrano, :db role, 它是做什么用的?

转载 作者:行者123 更新时间:2023-12-03 23:22:12 24 4
gpt4 key购买 nike

据我所知,capistrano :db角色仅用于运行迁移。

(因此,在大多数情况下,它实际上可能不应该是运行数据库的服务器。为什么要在那里使用 ruby​​/rails 堆栈(或允许 ssh 登录)?它只是您想要实际执行 rails 迁移的任何服务器)。

并且只有被标识为 :primary => true 的 db 角色的服务器用于运行迁移。

所以任何其他服务器被标识为“db”角色但没有 :primary => true ……根本就没有用?那么为什么 capify . 创建的默认 deploy.rb鼓励你列出它们?你甚至会在这里列出什么?

我缺少什么吗?

最佳答案

显然,角色名称:db是误导。正如您所指出的,Capistrano 将它(使用 :primary => true)定义为我们执行的主机 rake db:migrate上,但数据库服务器并不总是在此类主机上运行。我们可以通过 Rails 应用程序更改远程数据库服务器的架构。此类主机的正确角色名称不是 :db .

lib/capistrano/configuration/roles.rb 上的评论推断,角色本义:db是运行数据库服务器的主机。我们预计登录到:db主持和做一些任务。

Capistrano 的设计者应该已经定义了 :migration deploy:migrate 的角色或其他东西任务。但是:db之间的关联这个任务的角色是六年前用 9a6d2fb 定义的。并且从那时起就没有改变。

一般来说,Capistrano 的用户可以自由定义角色并与任务关联。 deploy:migrate task 只是作为 Rails 开发人员的秘诀提供。不幸的是,这个秘籍包含了一个关于我们如何进行数据库迁移的误解,并被广泛使用了很长时间。

关于ruby-on-rails - capistrano, :db role, 它是做什么用的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9781767/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com