2014-05-08 120 views
0

我使用omniauth登錄用戶,然後在數據庫中存儲一些屬性。下面是我如何刪除omniauth哈希的空白屬性,選擇一些屬性Json數據類型在PG heroku上。在當地工作。 PG :: InvalidTextRepresentation

def update_blank_attributes(attributes,force_update_attr) 
    attributes.each { |k,v| puts attributes.delete(k) unless (force_update_attr.include?(k)||read_attribute(k).blank?) } 
    update_attributes!(attributes) 
    end 

我的用戶模型數據類,這是一個JSON數據類型:

class AddDataToUsers < ActiveRecord::Migration 
    def change 
    add_column :users, :data, :json 
    end 
end 

這個本地工作細,甚至刪除並重新創建數據庫後。

但是我獲得以下在Heroku上的錯誤:

ActiveRecord::StatementInvalid (PG::InvalidTextRepresentation: ERROR: invalid input syntax for type json 
DETAIL: Token "=" is invalid. 
CONTEXT: JSON data, line 1: "linkedin_data"=... 
: INSERT INTO "users" ("created_at", "data", "email", "name", "provider", "updated_at") VALUES ($1, $2, $3, $4, $5, $6) RETURNING "id"): 
app/models/user.rb:68:in `update_blank_attributes' 
    app/controllers/authentications_controller.rb:38:in `create' 
PG::InvalidTextRepresentation: ERROR: invalid input syntax for type json 
CONTEXT: JSON data, line 1: "linkedin_data"=... 
DETAIL: Token "=" is invalid. 


local PG version:9.3.3 
Heroku PG version: 9.3.3 

我越來越/因爲它的確切相同的呼叫從LinkedIn地方在Heroku上保存相同的數據,以及對LinkedIn進行身份驗證

回答

0

什麼數據庫你在本地使用嗎?它是一個Postgres數據庫,與Heroku上使用的相同version?在Heroku上使用什麼版本的Postgres? (你可以找到的東西,如

heroku pg:info -a appname 
... 
PG Version: 9.2.6 

所以我想我的假設是,你使用不同的版本,所以你不能在本地看到的問題。要麼,你在不同的數據。Heroku的應用程序,所以你看到的問題清單有

+0

本地PG版本:9.3.0 Heroku的PG版本:9.3.3 – codeObserver

+0

還更新了問題 – codeObserver

+0

喬恩喜,我更新了本地數據庫,並不能在本地重現問題。還有其他想法嗎? – codeObserver

0

重新啓動的Heroku DYNOS固定的問題,對我來說

+0

爲什麼這樣做,我想知道? –

相關問題