【问题标题】:rake db:migrate RAILS_ENV=developmentrake db:migrate RAILS_ENV=development
【发布时间】:2012-03-29 20:24:17
【问题描述】:

为什么我们在命令 rake db:migrate 上收到错误

Rails Error: Unable to access log file. Please ensure that /home/mahaloo/mahaloo/releases/20120329200051/log/development.log exists and is chmod 0666. The log level has been raised to WARN and the output directed to STDERR until the problem is fixed.

rake aborted!
unable to open database file

Tasks: TOP => db:migrate
(See full trace by running task with --trace)

那里有什么问题。我尝试通过 capistrano 进行部署,我使用本教程设置 capistrano http://teachmetocode.com/screencasts/basic-deployment-with-capistrano/

【问题讨论】:

    标签: ruby-on-rails deployment rake capistrano dbmigrate


    【解决方案1】:

    您缺少日志目录或文件。你有运行 cap deploy:setup 吗?

    否则先手动创建日志文件。

    【讨论】:

    • 感谢@Isotope,我触摸了 development.log 并将 r/w-rights 设置为 0666,但 rake 总是中止。
    • 如果您没有写入日志目录,那么cap deploy:check 将失败。当然,您已经运行了cap deploy:setupcap deploy:check,并修复了所有问题。您可能缺少 database.yml,因为它不在 scm 中,请参阅下面的答案。
    【解决方案2】:

    这可能是因为您遵循了不将 database.yml 检入源代码控制的做法。如果是这种情况,您可以在 deploy shared/config 文件夹中制作 database.yml 的副本,然后创建 Capistrano 任务将其符号链接回您的发布文件夹。像这样的东西(namespace deploy

    task :create_symlinks do
      run "ln -nfs #{shared_path}/db/production.sqlite3 #{release_path}/db/production.sqlite3"
      run " -nfs #{shared_path}/config/ldap.yml #{release_path}/config/ldap.yml"
      run "ln -nfs #{shared_path}/config/database.yml #{release_path}/config/database.yml"
    end
    

    然后在一个钩子中调用它

    after "deploy:finalize_update", "deploy:create_symlinks"
    after "deploy:finalize_update", "deploy:migrate"
    

    我认为这会奏效,这就是我们推进项目的方式。这类似于以下问题:

    database.yml deployment best practice Capistrano - can't deploy my database.yml How to manage Rails database.yml

    【讨论】:

      【解决方案3】:

      如果您的环境是在 linux 上,您是否尝试过 sudo,例如,我在尝试运行迁移时遇到了错误,rake db:migrate,所以我使用了 sudo rake db:migrate,这很有效,可能是因为它的 rake试图咨询 development.log 没有正确的权限或类似的东西。

      【讨论】:

        猜你喜欢
        • 2014-02-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-03
        • 2016-03-15
        • 1970-01-01
        • 2013-06-13
        相关资源
        最近更新 更多