ruby-on-rails – 为什么要在数据库主机上保留应用程序的副本?
发布时间:2020-12-17 01:23:27 所属栏目:百科 来源:网络整理
导读:许多Capistrano示例配方包括:db角色.默认情况下,部署任务将应用程序代码导出到所有角色中的所有主机.因此,这表明人们通常会在数据库主机上保留其应用程序的副本.此外,在Capistrano的分布式deploy.rb配方中,:deploy:migrate如下所示: task :migrate,:role
许多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 => true task :migrate,:roles = :app,:only => {:runs_migrations => true } do #... end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- c# – RadioButtonList:OnSelectedIndexChanged没有触发
- ruby-on-rails – 在Rails中提交表单后,Bootstrap模式不会被
- 使用Swift 3进行JSONSerialization
- postgresql – Heroku – 无法通过Play Framework应用程序设
- c – 包含Qt标头的正确方法是什么?
- ruby-on-rails – rails:仅限生产中的NoMethodError
- DbHelper数据操作类
- postgreSQL polygon 类型错误(添加多边形postgreSQL)
- c – vector :: operator []开销
- cocos2dx-截取屏幕一部分