2015-05-17 3 views
0

У меня есть проект ruby ​​on rails, который позволяет мне отправить комментарий (называется запиской). Кажется, что он отлично работает на моем компьютере, и я использую sql или что-то, что поставляется с рельсами.RoR Postgresql on Heroku error: PG :: StringDataRightTruncation

После того, как я положил приложение на героку, все работает хорошо, за исключением того, что мои заметки длиннее 255 символов, возвращают ошибку.

Я уверен, что это связано с базой данных, так как на localhost: 3000 Я могу сэкономить сотни строк текста.

Я, однако, ничего не знаю о базах данных - может ли кто-нибудь указать мне в правильном направлении с этой ошибкой? ошибка:

PG::StringDataRightTruncation: ERROR: value too long for type character varying(255)

Вот миграция для заметок, и его определяется как строка, а не персонаж:

class CreateNotes < ActiveRecord::Migration 
    def change 
    create_table :notes do |t| 
     t.string :title 
     t.string :comment 
     t.integer :user_id 
     t.integer :record_id 

     t.timestamps 
    end 
    end 
end 

enter image description here

+1

Я только что нашел этот http://stackoverflow.com/questions/17920028/pgstringdatarighttruncation-error-postgresql-string255-limit-heroku –

ответ

1

Вы должны использовать: текст поля типа для атрибутов который будет содержать более 255 символов.

class CreateNotes < ActiveRecord::Migration 
    def change 
    create_table :notes do |t| 
    t.text :title 
    t.text :comment 
    t.integer :user_id 
    t.integer :record_id 

    t.timestamps 
    end 
end 

Это будет работать только если вы в состоянии воссоздать вашу базу данных, выполнив

rake db:drop 
rake db:create 
rake db:migrate 

Если вы не в состоянии сбросить базу данных, вам придется сделать новую миграцию с

def change 
    change_column :notes, :title, :text 
    change_column :notes, :comment, :text 
end 
+0

Я сделал изменения, но я не знаю, как подтолкнуть ч ange to heroku, не уничтожая все данные в базе данных. «heroku run rake db: migrate --app [appname]» помог –

+0

обновил мой ответ, чтобы отразить обновление производственной базы данных без разрушения данных. убедитесь, что вы создаете новую миграцию – errata

+0

awesome, спасибо! –

Смежные вопросы