开发者

Rails 3/Heroku - Error resetting database on push to heroku - 'type modifier is not allowed for type "text"'

I'm trying to heroku rake db:reset from a Rails 3 app using sqlite3, but I'm getting the following error:

rake aborted!
PGError: ERROR:  type modifier is not allowed for type "text"
LINE 1: ...ary key, "name" character varying(255), "content" text(255),...
                     开发者_如何学JAVA                                        ^

here is my most recent migration:

change_table :mixes do |t|
  t.change :content, :text
  t.change :post, :text  
end 

and my schema.rb:

create_table "mixes", :force => true do |t|
  t.string   "name"
  t.text     "content",    :limit => 255
  t.datetime "created_at"
  t.datetime "updated_at"
  t.string   "mixologist"
  t.string   "link"
  t.string   "title"
  t.text     "post",       :limit => 255
end

From my understanding Sqlite3 doesn't enforce limits on string and text and I didn't add those limits myself. I thought Heroku would automatically handle those in converting to Postgres or whatever it does. But it seems like the limits are throwing it off somewhere. What's the best way for me to deal with this?

Let me know if I should post anything else.


Change your recent migration to

change_table :mixes do |t|   
    t.change :content, :text, :limit => nil
    t.change :post, :text, :limit => nil
end

This is one of the many nuances you will have to look out for when developing using sqlite3 :( Only happens when you alter the type of a column from string to text.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜