如何将heroku数据拉入本地SQLite3数据库?遇到问题

时间:2010-09-15 00:11:11

标签: ruby-on-rails sqlite heroku sequel taps

我正在尝试从我的Rails应用程序进行本地备份,该应用程序部署到Heroku,并遇到问题。我按照此处的说明操作:http://docs.heroku.com/taps并安装了Taps。

我得到两种类型的错误。我在本地创建了一个SQLite数据库,并尝试使用此命令提取数据:

  

(sudo)heroku db:pull sqlite://Users/username/folder/testbackup.db

  

(sudo)heroku db:pull sqlite:// username:password@localhost/Users/username/folder/testbackup.db

但无论如何,我得到了这个:

  

无法连接到数据库:    Sequel :: DatabaseConnectionError - > SQLite3 :: CantOpenException:无法打开数据库:无法打开数据库文件

或者,我尝试让Taps在我的应用程序中自动检测开发数据库并重写它,尽管这不是我想要的。然后我开始收到错误:

  

/opt/local/lib/ruby/site_ruby/1.8/rubygems.rb:777:in report_activate_error': RubyGem version error: sequel(3.15.0 not ~> 3.13.0) (Gem::LoadError) from /opt/local/lib/ruby/site_ruby/1.8/rubygems.rb:211:in activate'       来自/opt/local/lib/ruby/site_ruby/1.8/rubygems.rb:1056:in'gem'       来自/Library/Ruby/Gems/1.8/gems/taps-0.3.10/bin/schema:4

并最终

  

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.4/lib/sqlite3/errors.rb:62:in` check':SQLite3 :: SQLException:PRIMARY KEY必须是唯一的(Sequel :: DatabaseError)

提前感谢,我开始尽快备份这些数据非常重要!

2 个答案:

答案 0 :(得分:10)

一些问题。首先,你的续集连接字符串是错误的。尝试

heroku db:pull sqlite:///Users/username/folder/testbackup.db

如果您仍然遇到异常,可能是由于权限问题,因此请确保您可以写入该路径。

您的Rubygem版本错误是因为当前版本的水龙头需要续集3.13.0,并且您已经激活了3.15.0。您需要使用3.13.0或者您需要编辑点击宝石规范以使用3.15.0。

PRIMARY KEY必须是唯一的SQLite异常。没有完整的回溯和代码,很难猜出它为什么会发生。

答案 1 :(得分:0)

对于SQLite3::SQLException: PRIMARY KEY must be unique (Sequel::DatabaseError)问题,我在拉动过程中将数据写入heroku数据库时看到了它。如果我确保heroku上没有任何活动,似乎可以工作。这是一种不科学的,可能纯属巧合的方法,但似乎对我有用。