2012-03-29 10 views
0

Warum wir einen Fehler auf dem Befehl rake db erhalten: esrake db: migrate RAILS_ENV = Entwicklung

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) 

Was stimmt nicht migrieren. Ich versuchte, über capistrano zu deployen, ich habe dieses Tutorial verwendet, um capistrano http://teachmetocode.com/screencasts/basic-deployment-with-capistrano/

Antwort

1

zu konfigurieren Sie fehlen entweder das Protokollverzeichnis oder die Datei. Haben Sie cap deploy ausgeführt: setup?

Andernfalls erstellen Sie die Protokolldatei zuerst manuell.

+0

Danke @Isotope Ich habe das development.log berührt und die R/W-Rechte auf 0666 gesetzt, aber Rake wurde immer abgebrochen. – amarradi

+0

Wenn Sie nicht in das Protokollverzeichnis schreiben, schlägt 'cap deploy: check' fehl. Natürlich haben Sie bereits 'cap deploy: setup' und' cap deploy: check' ausgeführt und Probleme behoben. Möglicherweise fehlt Ihnen die Datenbank.yml, weil sie nicht in scm enthalten ist, siehe meine Antwort unten. – tehfoo

0

Dies ist wahrscheinlich, weil Sie die Praxis verfolgen, Ihre Datenbank.yml in Quellcodeverwaltung nicht zu überprüfen. Wenn dies der Fall ist, können Sie eine Kopie Ihrer Datei "database.yml" im Ordner "deploy shared/config" erstellen und eine Capistrano-Aufgabe erstellen, um die Symlink-Verknüpfung in Ihren Freigabeordner wiederherzustellen. Etwas wie folgt aus (in 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 

Dann rufen Sie diese in einem Haken

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

denke ich, dass das funktionieren würde, das ist, wie wir auf unser Projekt verstärken sind. Dies ist vergleichbar mit diesen Fragen:

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

0

Haben Sie mit sudo versuchen, wenn Ihre Umgebung seinen auf Linux, zum Beispiel, ich diesen Fehler hätte versucht, die Migration zu laufen, rake db:migrate, so dass ich verwenden sudo rake db:migrate und das ist Arbeit, vielleicht weil der Rake, wenn er versucht, development.log zu konsultieren, nicht die richtigen Berechtigungen oder so etwas hat.

Verwandte Themen