Я пытаюсь выполнить миграцию db: в мой экземпляр heorku, и я получаю сообщение об ошибке.Часто задаваемые вопросы описывают мою ошибку следующим образом:
Невозможно изменить тип столбца
Пример: PGError: ОШИБКА: невозможно преобразовать столбец «verify_at» в тип «date»
Причина: PostgreSQL не знает, как привести все строки в этой таблице к указанному типу.Скорее всего, это означает, что у вас есть целое число или строка в этом столбце.
Решение: проверьте ваши записи и убедитесь, что они могут быть преобразованы в новый тип.Иногда проще просто не использовать change_column, а переименовывать / создавать новый столбец.
Как мне изменить эту миграцию сейчас.Это проблема, которая у меня есть.Для своей таблицы контактов я создал следующее:
t.string :date_entered
В более поздней миграции я делаю следующее:
change_column :contacts, :date_entered, :date
Похоже, этот столбец change_column является проблемой.
Должен ли я ... изменить вручную эту миграцию?Есть ли способ очистки данных в моих таблицах (я не знал, что Heroku распознает данные в таблице, потому что я делаю рейк).
Мне, очевидно, нужно изменить это значение, и оноиспользуется во всем моем приложении.Спасибо.
Это то, что я пытаюсь ... мысли?
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