首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails:在执行config/initializers中的初始化器之前,使用capistrano创建symlink

Rails:在执行config/initializers中的初始化器之前,使用capistrano创建symlink
EN

Stack Overflow用户
提问于 2017-07-05 17:36:54
回答 1查看 102关注 0票数 1

我有一个capistrano任务,它在deploy.rb中是这样执行的:

代码语言:javascript
复制
after  'deploy:update_code', 'deploy:create_symlink'

任务:

代码语言:javascript
复制
Capistrano::Configuration.instance.load do
    namespace :deploy do
         task :create_symlink do
           run "touch #{shared_path}/somefile.yml"
           run "ln -nfs #{shared_path}/somefile.yml #{release_path}/config/somefile.yml"
         end
    end
end

配置从somefile.yml加载,如下所示:

代码语言:javascript
复制
customconf = OpenStruct.new(YAML::load_file(File.join(Rails.root, 'config', 'somefile.yml'))[Rails.env]||{})

我遇到的问题是配置被加载到config/initializers/customconfig.rb中。但是符号链接似乎是在customconfig.rb中的代码创建之后创建的。

这是我在尝试设置部署上限时遇到的错误:

Errno::ENOENT:没有这样的文件或目录- /var/www/vhosts/mysite/rails/releases/20170705083649/config/somefile.yml

基本上,在创建符号链接之后,我如何从somefile.yml加载配置。或者,我如何在初始化器执行之前运行cap任务?

EN

回答 1

Stack Overflow用户

发布于 2017-07-05 18:00:11

我通过在after 'deploy:finalize_update'之后更改after 'deploy:update_code'来解决我的问题。但我想问一下,在我接受这个答案之前,这是不是正确的方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44922429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档