Я пытаюсь взломать db: migrations в экземпляр heorku, и я получаю сообщение об ошибке. В FAQ часто указывалась моя ошибка:
Невозможно изменить тип столбца
Пример: PGError: ОШИБКА: столбец "verified_at" не может быть введен для ввода типа "Дата"
Причина: PostgreSQL не знает, как отбросить все строки в этой таблице на указанного типа. Скорее всего, это означает у вас есть целое число или строка в этой колонке.
Решение. Осмотрите свои записи и убедитесь, что они могут быть преобразованы в Новый тип. Иногда его легче просто не используйте change_column, переименование/создание нового столбца вместо этого.
Как изменить эту миграцию сейчас. Это проблема, которая у меня есть. В моей таблице "Контакты" я создал следующее:
t.string :date_entered
При последующей миграции я делаю следующее:
change_column :contacts, :date_entered, :date
Этот change_column кажется проблемой.
Должен ли я... изменить вручную эту миграцию? Я могу очистить данные в своих таблицах (я не знал, что Героку распознает данные в таблице, потому что я делаю рейк).
Мне явно нужно изменить это значение, и оно используется во всем приложении. Спасибо.
Это то, что я пытаюсь... мысли?
def self.up
#change_column :contacts, :date_entered, :date
#this fails in postgres, so trying the same outcome
rename_column :contacts, :date_entered, :date_entered_old
add_column :contacts, :date_entered, :date
remove_column :contacts, :date_entered_old
end
def self.down
add_column :contacts, :date_entered_old
remove_column :contacts, :date_entered
rename_column :contacts, :date_entered_old, :date_entered
end