在服务器节点之间同步yaml文件

时间:2013-05-08 08:27:47

标签: ruby-on-rails production-environment

我在rails应用程序中有一个Yaml文件和一个界面页面来修改其内容。当我显示,修改和保存更改时,它在我的开发机器上正常工作。但是,我担心的是,如果生产环境有两个运行应用程序的节点,它将如何同步对该文件所做的更改?

我认为在这种情况下,yadayada.yml文件会有2个副本,用户所做的更改会将其保存到其中一个,另一个仍然会有旧结构。

处理这种情况的最佳做法是什么?

PS:yaml的内容并不适合将其保存在数据库中。

提前谢谢,干杯!

1 个答案:

答案 0 :(得分:1)

您可以创建一个共享文件夹的符号链接,并将yml文件放在那里..就像普通的database.yml或其他config.yml文件一样。

将类似内容添加到deploy.rb

task :symlink_yaml_file do
  run "ln -nfs #{shared_path}/config/yml-file.yml #{release_path}/config/yml-file.yml"
end

因此,通常每个节点都应该使用相同的文件。