ruby – Heroku和Datamapper问题
我可以在Heroku上启动一个基本的应用程序,显示带有’/’的消息……工作得很好.但是,每当我尝试使用datamapper添加sqlite时,事情就会崩溃.
为了查看我的应用程序结构,请查看github上的项目.我保持代码非常简单. 在heroku的日志中我得到: 2011-06-26T21:28:36+00:00 app[web.1]: /app/.bundle/gems/ruby/1.9.1/gems/dm-core-1.1.0/lib/dm-core/adapters.rb:163:in `require': no such file to load -- dm-postgres-adapter (LoadError) 关于这一点的是我没有使用postgres,所以我很困惑为什么这么说. 解决方法
“关于这个问题的是我没有使用postgres,所以我很困惑为什么会说这个.”
你正在使用Heroku,所以你正在使用Postgresql. 在你的app.rb中你有这一行: DataMapper::setup(:default,ENV['DATABASE_URL'] || "sqlite3://#{Dir.pwd}/notes.db") 我猜这是从the Heroku database docs开始的.这行基本上是说“检查环境变量’DATABASE_URL’,如果设置使用它作为数据库url,否则使用Sqlite url”.在本地运行此环境变量将不会被设置,因此您将使用Sqlite网址,但在Heroku上,这将被设置为类似的内容(请参阅上面链接的页面): postgres://username:password@hostname/database Datamapper会看到这是一个Postgresql url,并尝试要求postgres适配器,它没有安装,因此会导致您看到的错误. 最好的解决方案是在本地安装Postgresql,以便您的开发和生产环境尽可能相似.如果您不能这样做,或者不想这样做,您可以在本地指定Sqlite适配器,并在生产中指定Postgres适配器.它在Gemfile中看起来像这样: group :development do gem 'dm-sqlite-adapter' end group :production do gem 'dm-postgres-adapter' end 如果你这样做,你需要告诉Heroku在安装宝石时要忽略哪些组,请参阅Heroku Gem Bunder docs. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |