2012-03-29 118 views
0

爲什麼我們得到的命令耙分貝的錯誤:遷移耙分貝:遷移RAILS_ENV =發展

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/

回答

1

你要麼丟失日誌目錄或文件。你是否運行cap deploy:setup?

否則,請先手動創建日誌文件。

+0

感謝@Isotope我觸及了development.log並將r/w權限設置爲0666,但rake始終中止。 – amarradi 2012-03-31 13:03:50

+0

如果您沒有寫入日誌目錄,那麼'cap deploy:check'將失敗。當然,你已經運行了'cap deploy:setup'和'cap deploy:check',並且修復了所有問題。您可能會缺少database.yml,因爲它不在scm中,請參閱下面的答案。 – tehfoo 2013-03-14 19:33:02

0

這可能是因爲你正在遵循不檢查你的database.yml到源代碼控制的做法。如果是這種情況,您可以在部署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

0

有,如果你嘗試用sudo您的環境及其在Linux上,例如,我得到的錯誤嘗試運行的遷移,rake db:migrate,所以我用sudo rake db:migrate這就是工作,也許是因爲它試圖諮詢development.log時的耙子沒有正確的權限或類似的東西。

相關問題