我正在尝试迁移数据库,但出现此错误。

heroku rake db:migrate
(in /app)
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2/lib/rake/file_utils.rb:10: warning: already initialized constant RUBY
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2/lib/rake/file_utils.rb:84: warning: already initialized constant LN_SUPPORTED
rake/rdoctask is deprecated.  Use rdoc/task instead (in RDoc 2.4.2+)
rake aborted!
Read-only file system - /var/www
/usr/ruby1.9.2/lib/ruby/1.9.1/fileutils.rb:243:in `mkdir'
/usr/ruby1.9.2/lib/ruby/1.9.1/fileutils.rb:243:in `fu_mkdir'
/usr/ruby1.9.2/lib/ruby/1.9.1/fileutils.rb:217:in `block (2 levels) in mkdir_p'
/usr/ruby1.9.2/lib/ruby/1.9.1/fileutils.rb:215:in `reverse_each'
/usr/ruby1.9.2/lib/ruby/1.9.1/fileutils.rb:215:in `block in mkdir_p'
/usr/ruby1.9.2/lib/ruby/1.9.1/fileutils.rb:201:in `each'
/usr/ruby1.9.2/lib/ruby/1.9.1/fileutils.rb:201:in `mkdir_p'
/app/config/initializers/setup_shared_data.rb:6:in `<top (required)>'
/app/vendor/rails/activesupport/lib/active_support/dependencies.rb:147:in `load'
/app/vendor/rails/activesupport/lib/active_support/dependencies.rb:147:in `load_with_new_constant_marking'
/app/vendor/rails/railties/lib/initializer.rb:622:in `block in load_application_initializers'
/app/vendor/rails/railties/lib/initializer.rb:621:in `each'
/app/vendor/rails/railties/lib/initializer.rb:621:in `load_application_initializers'
/app/vendor/rails/railties/lib/initializer.rb:176:in `process'
/app/vendor/rails/railties/lib/initializer.rb:113:in `run'
/app/config/environment.rb:9:in `<top (required)>'

我该如何解决这个问题,或者我能做些什么来深入挖掘……

最佳答案

看起来/app/config/initializers/setup_shared_data.rb的第6行试图在本地文件系统上创建一个目录(这就是mkdir的含义)。
这在Heroku上是不允许的,因为文件系统是只读的(除了/tmp)有关此限制的详细信息,请参阅here文档。
把这句话加到你的问题上,也许我可以给出一个更具体的答案。

关于ruby-on-rails - Heroku-只读文件系统-/var/www?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6949751/

10-13 02:16