代码之家  ›  专栏  ›  技术社区  ›  Abram

Capistrano:链接文件数据库。本地主机上不存在yml

  •  1
  • Abram  · 技术社区  · 9 年前

    我正在部署到本地VM。错误如下:

    ERROR linked file /var/www/rails-devise-capistrano/shared/config/database.yml does not exist on localhost
    

    但是,该文件确实存在:

    vagrant@vagrant:/var/www/rails-devise-capistrano/shared/config$ ls
    database.yml  secrets.yml
    

    知道如何修复这个错误吗?

    更新:

    INFO [81d54d10] Running /usr/bin/env mkdir -p /var/www/rails-devise-capistrano/shared/config /var/www/rails-devise-capistrano/shared/config as vagrant@localhost
    DEBUG [81d54d10] Command: ( RBENV_ROOT=~/.rbenv RBENV_VERSION=2.2.2 /usr/bin/env mkdir -p /var/www/rails-devise-capistrano/shared/config /var/www/rails-devise-capistrano/shared/config )
    INFO [81d54d10] Finished in 0.042 seconds with exit status 0 (successful).
    DEBUG [44d62e62] Running /usr/bin/env [ -f /var/www/rails-devise-capistrano/shared/config/database.yml ] as vagrant@localhost
    DEBUG [44d62e62] Command: [ -f /var/www/rails-devise-capistrano/shared/config/database.yml ]
    DEBUG [44d62e62] Finished in 0.042 seconds with exit status 1 (failed).
    
    1 回复  |  直到 9 年前
        1
  •  3
  •   Matt Brictson    9 年前

    Capistrano使用命令 [ -f PATH ] 来测试一下 database.yml 存在。它正在从该测试返回非零退出状态,这就是为什么它会给您一个错误。

    根据bash手册页:

    -f file如果文件存在并且是常规文件,则为True。

    你的 数据库.yml 是目录吗?或者不是“常规文件”?或者 vagrant 用户没有访问它的权限?