【发布时间】:2011-07-19 03:32:03
【问题描述】:
我正在寻找可以提供和编辑位于 Git 存储库中的内容的 Ruby CMS(或插件)。我厌倦了将我的内容放在数据库中。用户,设置,cmets,很好。但没有更多内容了。
对页面的每次实时编辑都需要自动立即提交,以防止需要进行服务器端合并。此外,无论何时推送新的更改,都需要立即在文件系统上进行更新。
Refinery CMS 文档似乎做了类似的事情,尽管可能使用远程存储库。
我已经阅读了有关 GitModel 和 git-blog 的信息,但我仍在寻找更符合我需求的东西。 [编辑:与大多数 CMS 一起使用时,GitModel 很难手动编辑,而 git-blog 使用静态文件生成。]
编辑:我对内容数据库的偏见仅适用于需要高度自定义的网站,并且不能按原样使用任何 CMS。 代码与其内容一样多的网站。这是当在数据库中拥有内容是一场彻头彻尾的噩梦时。当您需要同时分叉内容和代码时,它们稍后会将它们合并到生产中。数据库不会分支和合并。
我有这样一个网站。
支持仅 DB 内容的性能论点是无效的。我 5 年前写了一个 CMS,它从文件系统同步数据库,其中文件系统始终是主副本。它可以轻松扩展到 100,000 个页面,保持 10 毫秒的响应时间和 2 秒的重新索引时间。所有内容、元数据、标签、日期等的完全可搜索索引。哎呀,我用地球上最慢、最痛苦的框架 ASP.NET 编写了它。实际上,它几乎使 ASP.NET 变得可以接受,并且它为各种公司提供了非常好的服务,因为它们拥有与上面提到的相同类型的网站。
小型网站可以简单地使用内存缓存,完全跳过数据库内容
仅 db 内容的一个有效参数是编辑的可扩展性。编辑者必须全部使用相同的服务器,但可以向外复制更改。但是对于快速变化、高度定制的网站,这些网站更改代码的频率与内容一样多,不太可能对所述代码和内容进行分布式/社区编辑。 社区/分布式编辑可以使用不同的系统。
到目前为止,我最接近的是使用 Cloud9 编辑内容的 git 存储库(Nesta CMS),然后通过命令行推送更改。它很慢,但至少它是基于网络的,以防我的开发机器不方便,我发现我在一篇文章中拼错了我的名字。仍在寻找更好的选择。
【问题讨论】:
-
您想谈谈为什么不希望数据库中有内容吗?
-
“我已经阅读了有关 GitModel 和 git-blog 的信息,但我仍在寻找更符合我需求的东西。”那些你觉得不满意的地方是什么?
-
GitModel 在文件的编写方式上没有提供很大的灵活性,并且直接编辑它们有点困难。 git-blog 使用静态生成,而我的大部分网站将包含高级动态功能。
-
在本地数据库和实时数据库之间同步更改始终是一场噩梦,即使使用自动批量复制的工具(例如 Heruk 的 db:push 和 db:pull)也是如此。当内容非常独立于应用程序时,例如在博客或 wiki 中,同步更改不是一个大问题。但是在开发 CSS 和代码交互并依赖于内容时,内容的版本需要与代码保持同步。
标签: git ruby-on-rails-3 content-management-system