jro*_*ind 13 capistrano ruby-on-rails
据我所知,capistrano :db
角色仅用于运行迁移.
(因此,在大多数情况下,它可能实际上不应该是运行数据库的服务器.为什么你会在那里有ruby/rails堆栈(或允许ssh登录)?它只是你想要实际执行rails迁移的服务器).
并且只有标识为db role with的服务器才:primary => true
用于运行迁移.
因此,任何其他标识为"db"角色但没有:primary => true
......的服务器根本不使用任何内容?那么为什么创建默认的deploy.rb会capify .
鼓励你列出它们呢?你甚至会在这里列出什么?
我缺少什么?
Tsu*_*omu 21
显然,角色的名称: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
任务仅作为Rails开发人员的配方提供.不幸的是,这个方法包含了对我们如何进行数据库迁移的误解,并且被广泛使用了很长时间.
归档时间: |
|
查看次数: |
5271 次 |
最近记录: |