Rails 3 / Heroku - 在推送到heroku时创建数据库时出错 - “类型”文本“不允许使用”类型修饰符

时间:2011-08-26 17:39:12

标签: ruby-on-rails sqlite heroku

我正在尝试heroku rake db:使用sqlite3从Rails 3应用程序重置,但是我收到以下错误:

rake aborted!
PGError: ERROR:  type modifier is not allowed for type "text"
LINE 1: ...ary key, "name" character varying(255), "content" text(255),...
                                                             ^

这是我最近的迁移:

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

和我的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

根据我的理解,Sqlite3不对字符串和文本强制执行限制,我自己也没有添加这些限制。我认为Heroku会自动处理转换为Postgres或其他任何东西的人。但似乎限制在某个地方抛弃它。对我来说,最好的方法是什么?

如果我发布任何其他内容,请告诉我。

非常感谢。

1 个答案:

答案 0 :(得分:4)

将您最近的迁移更改为

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

这是使用sqlite3进行开发时需要注意的许多细微差别之一:(只有当您将列的类型从字符串更改为文本时才会发生。