ruby-on-rails - 有没有办法让 ruby​​ on rails 应用程序像 Wordpress 一样支持基于 Web 的升级?

标签 ruby-on-rails ruby-on-rails-3 ruby-on-rails-plugins

我一直在使用 Wordpress 一段时间,它安装在我自己的服务器上,我最喜欢它的功能之一是每次有新版本时它都会在应用程序的基于网络的管理中提醒您,只需单击一下我可以升级应用程序。我不必靠近控制台。

就我个人而言,我不介意手动更新,但我可以看到这会如何显着影响软件的采用。我正在努力创建一个功能齐全的 ruby​​ on rails 论坛软件,我很想弄清楚如何包含这个功能。如果这可以用 Rails 完成,有什么想法吗?

rails 应用程序可以修改它自己的文件吗?如果是这样,服务器是否需要重新启动?

更复杂的是,如果应用程序是从存储库部署的。更新后,rails 应用程序可以检查自己的提交吗?

也许将应用程序的核心打包为 gem 会更简单?那么也许升级实际上不会修改 rails MVC 堆栈(rails 应用程序只是 super 基础),相反,如果论坛都包含在 gem 中,那么它所要做的就是触发“gem update [name]” .如果发生这种情况,我认为 Gemfile 甚至不需要更新。加载更新的 gem 甚至需要重新启动服务器吗?

对此有何想法或反馈?

最佳答案

Rails 文件可以在生产中修改甚至删除 - 在我的情况下,应用程序仍然保持不变,因为所有类都缓存在内存中。这意味着必须重新启动 Rails 实例才能进行新的更改。

我想 WordPress 是通过 CGI 实现的 Perl,您只需将应用程序放入 Web 目录即可使其立即工作 - 与更新相同 - 只需覆盖文件,Apache 就会立即获取它们。

在 Rails 的情况下,您不知道目标部署架构,因此重新启动应用程序可能并非易事。例如。带乘客我可以做 touch tmp\restart.txt然后所有实例都被杀死并重新启动。某些部署可能需要 init.d 脚本重新启动调用。

也许您可以推荐或准备一个支持自动更新的即用型部署模型。在其他情况下,用户可以手动进行更新。

关于ruby-on-rails - 有没有办法让 ruby​​ on rails 应用程序像 Wordpress 一样支持基于 Web 的升级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3723265/

相关文章:

ruby-on-rails - Rails 3表单助手: UTF8 and other hidden fields

ruby-on-rails - NoMethodError : undefined method `each' for #<Education id: nil, profile_id : nil, school_name:无>

ruby-on-rails - 有条件地包含带有 RABL 的子节点

ruby-on-rails - 附件_fu : how can I selectively prevent thumbnail creation?

ruby-on-rails - 如何配置 Rails 应用程序 (redmine) 以在 Windows 上作为服务运行?

ruby-on-rails - Ruby:获取变量名称

ruby-on-rails - 回形针 - 从 Amazon S3 中删除文件?

sql - rails : Find by related model attribute?

rubygems - gemspec中包含的依赖关系未添加到Rails引擎的 Assets 管道中

ruby-on-rails - Rails 自定义插件/带有 Partials 的 Gem