ruby-on-rails – 为什么要在数据库主机上保留应用程序的副本?

ruby-on-rails – 为什么要在数据库主机上保留应用程序的副本?,第1张

概述许多Capistrano示例配方包括:db角色.默认情况下,部署任务将应用程序代码导出到所有角色中的所有主机.因此,这表明人们通常会在数据库主机上保留其应用程序的副本.此外,在Capistrano的分布式deploy.rb配方中,:deploy:migrate如下所示: task :migrate, :roles => :db, :only => { :primary => true } do 许多CAPIstrano示例配方包括:db角色.默认情况下,部署任务将应用程序代码导出到所有角色中的所有主机.因此,这表明人们通常会在数据库主机上保留其应用程序的副本.此外,在CAPIstrano的分布式deploy.rb配方中,:deploy:migrate如下所示:

task :migrate,:roles => :db,:only => { :primary => true } do  # ...end

我的问题是,为什么这样做呢?将应用程序代码保留在数据库主机(可能甚至没有安装Ruby)并从生产框运行迁移不是更清晰吗?

解决方法 数据库服务器运行迁移,因为它是数据库的“负责人”.

人们还可以想象安全策略只允许从数据库服务器本身创建/删除/更改表.

如果在迁移期间加载了数据,甚至可能会有轻微的性能提升,尽管这是一个糟糕的想法.

如果您需要引用数据库主机并且不需要代码的副本,则可以使用以下内容:

role :db,'dbhost',:no_release => true

在应用程序服务器上运行迁移的示例代码:

role :app,'apphost',:runs_migrations => truetask :migrate,:roles = :app,:only => {:runs_migrations => true } do  #...end
总结

以上是内存溢出为你收集整理的ruby-on-rails – 为什么要在数据库主机上保留应用程序的副本?全部内容,希望文章能够帮你解决ruby-on-rails – 为什么要在数据库主机上保留应用程序的副本?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1212396.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存