Heroku db:pull失败,SQLite错误?

时间:2011-07-06 14:30:40

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

不确定发生了什么,所以这里有完整的痕迹:

Receiving schema
Schema:          0% |                                          | ETA:  --:--:--
Schema:          9% |===                                       | ETA:  00:00:15
Schema:         18% |=======                                   | ETA:  00:00:12
Schema:         27% |===========                               | ETA:  00:00:10
Schema:         36% |===============                           | ETA:  00:00:09
Schema:         45% |==================                        | ETA:  00:00:08
Schema:         54% |======================                    | ETA:  00:00:06
Schema:         63% |==========================                | ETA:  00:00:05
Schema:         72% |==============================            | ETA:  00:00:04
Schema:         81% |==================================        | ETA:  00:00:02
Schema:         90% |=====================================     | ETA:  00:00:01
Schema:        100% |==========================================| Time: 00:00:15
Receiving indexes
schema_migrat:   0% |                                          | ETA:  --:--:--
schema_migrat: 100% |==========================================| Time: 00:00:00
sections:        0% |                                          | ETA:  --:--:--
sections:      100% |==========================================| Time: 00:00:00
tweets:          0% |                                          | ETA:  --:--:--
tweets:         33% |=============                             | ETA:  00:00:01
tweets:         66% |===========================               | ETA:  00:00:00
tweets:        100% |==========================================| Time: 00:00:02
retweets:        0% |                                          | ETA:  --:--:--
retweets:      100% |==========================================| Time: 00:00:00
Receiving data
11 tables, 2,200 records
schema_migrat: 100% |==========================================| Time: 00:00:00
sections:      100% |==========================================| Time: 00:00:00
boxes:         100% |==========================================| Time: 00:00:00
sales_channel: 100% |==========================================| Time: 00:00:00
users:         100% |==========================================| Time: 00:00:00
settings:      100% |==========================================| Time: 00:00:00
admins:        100% |==========================================| Time: 00:00:00
entries:       100% |==========================================| Time: 00:00:00
tweets:        100% |==========================================| Time: 00:00:00
/Users/justin/.rvm/gems/ruby-1.9.2-p136/gems/sqlite3-1.3.3/lib/sqlite3/database.rb:91:in `initialize': SQLite3::SQLException: near ".": syntax error (Sequel::DatabaseError)
    from /Users/justin/.rvm/gems/ruby-1.9.2-p136/gems/sqlite3-1.3.3/lib/sqlite3/database.rb:91:in `new'
    from /Users/justin/.rvm/gems/ruby-1.9.2-p136/gems/sqlite3-1.3.3/lib/sqlite3/database.rb:91:in `prepare'
    from /Users/justin/.rvm/gems/ruby-1.9.2-p136/gems/sqlite3-1.3.3/lib/sqlite3/database.rb:223:in `execute_batch'
    from /Users/justin/.rvm/gems/ruby-1.9.2-p136/gems/sequel-3.20.0/lib/sequel/adapters/sqlite.rb:130:in `block (2 levels) in _execute'
    from /Users/justin/.rvm/gems/ruby-1.9.2-p136/gems/sequel-3.20.0/lib/sequel/database/logging.rb:28:in `log_yield'
    from /Users/justin/.rvm/gems/ruby-1.9.2-p136/gems/sequel-3.20.0/lib/sequel/adapters/sqlite.rb:130:in `block in _execute'
    from /Users/justin/.rvm/gems/ruby-1.9.2-p136/gems/sequel-3.20.0/lib/sequel/connection_pool/threaded.rb:71:in `hold'
    from /Users/justin/.rvm/gems/ruby-1.9.2-p136/gems/sequel-3.20.0/lib/sequel/database/connecting.rb:226:in `synchronize'
    from /Users/justin/.rvm/gems/ruby-1.9.2-p136/gems/sequel-3.20.0/lib/sequel/adapters/sqlite.rb:117:in `_execute'
    from /Users/justin/.rvm/gems/ruby-1.9.2-p136/gems/sequel-3.20.0/lib/sequel/adapters/sqlite.rb:87:in `execute_dui'
    from /Users/justin/.rvm/gems/ruby-1.9.2-p136/gems/sequel-3.20.0/lib/sequel/dataset/actions.rb:552:in `execute_dui'
    from /Users/justin/.rvm/gems/ruby-1.9.2-p136/gems/sequel-3.20.0/lib/sequel/dataset/actions.rb:243:in `block (2 levels) in import'
    from /Users/justin/.rvm/gems/ruby-1.9.2-p136/gems/sequel-3.20.0/lib/sequel/dataset/actions.rb:243:in `each'
    from /Users/justin/.rvm/gems/ruby-1.9.2-p136/gems/sequel-3.20.0/lib/sequel/dataset/actions.rb:243:in `block in import'
    from /Users/justin/.rvm/gems/ruby-1.9.2-p136/gems/sequel-3.20.0/lib/sequel/database/query.rb:223:in `_transaction'
    from /Users/justin/.rvm/gems/ruby-1.9.2-p136/gems/sequel-3.20.0/lib/sequel/database/query.rb:209:in `block in transaction'
    from /Users/justin/.rvm/gems/ruby-1.9.2-p136/gems/sequel-3.20.0/lib/sequel/connection_pool/threaded.rb:84:in `hold'
    from /Users/justin/.rvm/gems/ruby-1.9.2-p136/gems/sequel-3.20.0/lib/sequel/database/connecting.rb:226:in `synchronize'
    from /Users/justin/.rvm/gems/ruby-1.9.2-p136/gems/sequel-3.20.0/lib/sequel/database/query.rb:207:in `transaction'
    from /Users/justin/.rvm/gems/ruby-1.9.2-p136/gems/sequel-3.20.0/lib/sequel/dataset/actions.rb:243:in `import'
    from /Users/justin/.rvm/gems/ruby-1.9.2-p136/gems/taps-0.3.23/lib/taps/data_stream.rb:315:in `import_rows'
    from /Users/justin/.rvm/gems/ruby-1.9.2-p136/gems/taps-0.3.23/lib/taps/data_stream.rb:142:in `fetch_remote'
    from /Users/justin/.rvm/gems/ruby-1.9.2-p136/gems/taps-0.3.23/lib/taps/operation.rb:308:in `block in pull_data_from_table'
    from /Users/justin/.rvm/gems/ruby-1.9.2-p136/gems/taps-0.3.23/lib/taps/operation.rb:301:in `loop'
    from /Users/justin/.rvm/gems/ruby-1.9.2-p136/gems/taps-0.3.23/lib/taps/operation.rb:301:in `pull_data_from_table'
    from /Users/justin/.rvm/gems/ruby-1.9.2-p136/gems/taps-0.3.23/lib/taps/operation.rb:284:in `block in pull_data'
    from /Users/justin/.rvm/gems/ruby-1.9.2-p136/gems/taps-0.3.23/lib/taps/operation.rb:278:in `each'
    from /Users/justin/.rvm/gems/ruby-1.9.2-p136/gems/taps-0.3.23/lib/taps/operation.rb:278:in `pull_data'
    from /Users/justin/.rvm/gems/ruby-1.9.2-p136/gems/taps-0.3.23/lib/taps/operation.rb:253:in `block in run'
    from /Users/justin/.rvm/gems/ruby-1.9.2-p136/gems/taps-0.3.23/lib/taps/operation.rb:203:in `call'
    from /Users/justin/.rvm/gems/ruby-1.9.2-p136/gems/taps-0.3.23/lib/taps/operation.rb:203:in `catch_errors'
    from /Users/justin/.rvm/gems/ruby-1.9.2-p136/gems/taps-0.3.23/lib/taps/operation.rb:246:in `run'
    from /Users/justin/.rvm/gems/ruby-1.9.2-p136/gems/taps-0.3.23/lib/taps/cli.rb:171:in `clientxfer'
    from /Users/justin/.rvm/gems/ruby-1.9.2-p136/gems/heroku-2.3.6/lib/heroku/command/db.rb:191:in `taps_client'
    from /Users/justin/.rvm/gems/ruby-1.9.2-p136/gems/heroku-2.3.6/lib/heroku/command/db.rb:59:in `pull'
    from /Users/justin/.rvm/gems/ruby-1.9.2-p136/gems/heroku-2.3.6/lib/heroku/command.rb:114:in `run'
    from /Users/justin/.rvm/gems/ruby-1.9.2-p136/gems/heroku-2.3.6/bin/heroku:14:in `<top (required)>'
    from /Users/justin/.rvm/gems/ruby-1.9.2-p136/bin/heroku:19:in `load'
    from /Users/justin/.rvm/gems/ruby-1.9.2-p136/bin/heroku:19:in `<main>'

显然,在我看来tweets表中存在问题,但我不知道它可能是什么,因为该应用程序在开发中和生产中的heroku上工作。

以下是该表的架构:

 create_table "tweets", :force => true do |t|
    t.integer  "authorization_id"
    t.string   "name"
    t.string   "screen_name"
    t.string   "uid"
    t.integer  "tid"
    t.string   "tid_string"
    t.string   "text"
    t.integer  "followers_count"
    t.integer  "statuses_count"
    t.integer  "friends_count"
    t.integer  "retweets_count"
    t.datetime "created_at"
    t.datetime "updated_at"
  end

  add_index "tweets", ["authorization_id"], :name => "index_tweets_on_authorization_id"
  add_index "tweets", ["tid"], :name => "index_tweets_on_tid"
  add_index "tweets", ["tid_string"], :name => "index_tweets_on_tid_string"

转推:

  create_table "retweets", :force => true do |t|
    t.integer  "entry_id"
    t.string   "twitter_username"
    t.datetime "tweet_date"
    t.datetime "created_at"
    t.datetime "updated_at"
    t.string   "twitter_user_id_str"
    t.string   "name"
    t.integer  "twitter_user_id"
    t.integer  "tweet_id"
    t.string   "tweet_id_str"
  end

  add_index "retweets", ["entry_id"], :name => "index_retweets_on_entry_id"

2 个答案:

答案 0 :(得分:0)

我认为这是由Heroku和SQLite上的PostgreSQL之间的差异引起的。我会切换到PostgreSQL。即使你让它工作,你可能会在以后遇到问题。

我安装了PostgreSQL,非常简单。

答案 1 :(得分:0)

所以我今天早上安装了postgres并尝试了db:pull但它仍然失败了 - 但是,postgres更有启发性。它不是retweets表失败,而是authorizations。我错误地在一段时间后输入了一列last__name并忘了删除它(我已经添加了last_name)。一旦我从数据库中清除了它,db:pull再次处理sqlite和postgres。