我正在嘗試在heroku上使用PG安裝rails應用程序,並且還使用devise和oauth與雅虎體育api進行交互。設計; Heroku的; Postgres的; Rails
我遇到了在那裏當用戶進入到Heroku的日誌驗證的問題告訴我:
ActiveRecord::StatementInvalid (PG::Error: ERROR: value too long for type character varying(255)
所以閱讀棧溢出後PostgreSQL string(255) limit - Rails, Ruby and Heroku 後,我試圖改變令牌,因爲從字符串文本這似乎是可能導致超過255限制的最長的事情。我的遷移看起來像這樣:
class AddAccessTokenToAuthentications < ActiveRecord::Migration
def change
add_column :authentications, :token, :text, :limit => nil
add_column :authentications, :secret, :string
end
end
但是由於某些原因,它似乎正在將所有內容都改爲文本。當我看到我的模式移植後顯示:
create_table "authentications", :force => true do |t|
t.integer "user_id"
t.text "provider", :limit => 255
t.text "uid", :limit => 255
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.text "token", :limit => 255
t.text "secret", :limit => 255
end
當我推到Heroku的,並嘗試在Heroku我收到此錯誤遷移:
-- create_table("authentications", {:force=>true})
NOTICE: CREATE TABLE will create implicit sequence "authentications_id_seq" for serial column "authentications.id"
rake aborted!
PG::Error: ERROR: type modifier is not allowed for type "text"
LINE 1: ...serial primary key, "user_id" integer, "provider" text(255),...
: CREATE TABLE "authentications" ("id" serial primary key, "user_id" integer, "provider" text(255), "uid" text(255), "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL, "token" text(255), "secret" text(255))
我不知道如何解決這個或者我應該考慮什麼。如果有人有任何建議,將不勝感激!
謝謝!
我會在遷移中做什麼? – BC00
將其更改爲postgres max thx。愚蠢的我 – BC00