Heroku中的静态只读SQLite3数据库

时间:2013-05-29 23:04:18

标签: ruby-on-rails ruby-on-rails-3 postgresql heroku sqlite

我会尽力解释我的问题。

我有一个大约50,000条记录的SQLite3数据库文件,我在我的应用程序中编译和使用。此数据库是只读的,仅用于查询和提取数据。我在rails中为它创建了一个模型,它看起来像这样。

class Locations < ActiveRecord::Base

  establish_connection(
     :adapter => 'sqlite3',
     :database => 'db/locs.sqlite3'
  )
  set_table_name "Locations"

end

在开发结束时一切都很好,但是当我部署到Heroku时失败了。我假设问题是Heroku在Postrgres上运行但是我需要这个数据库与主要的生产数据库分开,我不需要花哨的东西。我需要的只是让app从这个文件中查询一些记录。

那里有解决方案吗?谢谢

3 个答案:

答案 0 :(得分:1)

可以通过执行此git repo中的步骤启用允许SQLite3只读。

https://github.com/yotsumoto/heroku-buildpack-ruby-with-sqlite3

跑完后:

$ heroku config:set BUILDPACK_URL=https://github.com/yotsumoto/heroku-buildpack-ruby-with-sqlite3

我能够git push heroku master gem 'sqlite3'仍在Gemfile中。

答案 1 :(得分:0)

我真的不理解你的问题,但我假设你想在开发中使用sq。测试但想在产品中使用postrgres,对吗?如果是这样,下面的代码应该有所帮助。从sqlite切换到pg是相当无缝的,所以你不应该有这样做的问题。

group :development, :test do
  gem 'sqlite3'
end
group :production do
  gem 'pg', '0.12.2'
end

答案 2 :(得分:-1)

你的问题的简单答案是你不可能做你想做的事情。 Heroku没有安装必要的先决条件甚至让你安装sqlite gem。