繁体   English   中英

在ruby Rake任务中存储项目特定的配置信息的最佳方法是什么?

What is the best way to store project specific config info in ruby Rake tasks?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有耙子任务,用于从远程服务器等获取生产数据库。它始终是相同的任务,但是每个项目的服务器信息都会更改。 我在这里有代码: https ://gist.github.com/868423在上一个任务中,我遇到了@local_db_dir_path = nil错误。

我不希望使用shell环境变量,因为我不想每次使用rake或打开新的shell时都进行设置。

2 个回复

您应该为此使用capistrano,可以使用mulitsage或仅将主机设置用于任务,例如capistrano示例如下:

task :development do
  server "development.host"
end

task :backup do
  run "cd #{current_path}; rake db:dump"
  download "remote_path", "local_path"
end

并这样称呼它:

cap development backup

将设置粘贴在YAML文件中,并按以下方式读取:

require 'yaml'
config = YAML.load("config.yaml") # or wherever

$remote_host = config['remote_host']
$ssh_username = config['ssh_username']
# and so on

或者,您可以只读取一个大的配置哈希值:

$config = YAML.load("config.yaml")

请注意,我在这里使用的是全局变量,而不是实例变量,因此没有机会对变量范围感到惊讶。

config.yaml将如下所示:

--- 
remote_host: some.host.name
ssh_username: myusername
other_setting: foo
whatever: bar

我倾向于将config.yaml.sample保持在代码的主体中,该代码主体包含示例但无法使用的设置,可以将所有内容复制到非版本化的config.yaml中。 有些人喜欢将config.yaml签入到服务器本身的实时分支中,以便对其进行版本控制,但我从不为此而烦恼。

1 建立Rake任务库的最佳方法

我使用Rakefiles做一些非常普通的事情,我想构建一个可以继承到Rakefile中的常见任务库。 最简单/最好的方法是什么? ...

2017-06-02 17:37:01 1 233   ruby/ rake
2 从Ruby on Rails执行系统任务的最佳方法是什么?

我正在构建一个小型系统管理Web应用程序(想想Web-Min,但在RoR中),并且我需要能够从我的Ruby代码访问系统参数。 例如,我要允许用户更改服务器的主机名,时区或网络配置。 我目前的想法是要有一个单独的setuid脚本(Perl,Ruby,??),以便可以从我的RoR代码中调用它 ...

3 在github上存储Symfony项目的最佳方法是什么?

我创建了一个Symfony项目并将其推送到github。 现在我想从另一台机器上的github上获取它。 问题是默认情况下Symfony的.gitignore文件中有很多文件/文件夹,所以我的应用程序在'git clone'命令后被破坏了。 我想知道,在github上存储和检索Sy ...

5 在网站上存储特定字符串的最佳方法是什么?

我想创建一个浏览器扩展,使我可以突出显示网站上的一些字符串。 而且,我希望每当我再次打开相同的网站时,该字符串都被突出显示。 我不能只是将字符串保存到数据库中,因为网站上可能有很多相同的字符串,我只想突出显示一个特别突出显示的用户。 保存和加载整个网站似乎是一个过大的选择... 在网站上存储特 ...

8 服务器上的Ruby Rake任务

我正在使用capistrano将网站部署到暂存和生产服务器。 我想使用类似于下面的内容来检查是否要在暂存或生产环境中进行部署并运行适当的命令。 由于某种原因,比较运算符无法正常工作。 我是在比较错误的变量值类型,还是类似的东西? ...

9 在Google App Engine中存储配置设置的最佳方法是什么? [关闭]

我有一个基于Python的Google App Engine网络服务器。 我想保存某些配置,以使配置更改不保证服务器重启。 例如,我的Web服务器向另一个服务器发出一个http请求,我想将辅助服务器的host:port存储为配置设置。 我正在考虑为此使用数据库表。 还有其他替代方法, ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM