Rails 3 / Heroku - Ошибка сброса базы данных при push to heroku - «модификатор типа недопустим для типа« текст »» - PullRequest
4 голосов
/ 26 августа 2011

Я пытаюсь герои рейка db: сбросить из приложения Rails 3 с использованием sqlite3, но я получаю следующую ошибку:

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 Ответ

4 голосов
/ 26 августа 2011

Измените свою недавнюю миграцию на

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

Это один из многих нюансов, которые вы должны учитывать при разработке с использованием sqlite3 :( Это происходит только при изменении типа столбца со строки на текст.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...