Ответ
@ user1899434 о том, что «существующая» таблица здесь может означать таблицу с уже имеющимися записями, записи, которые вы, возможно, не хотите удалять.Поэтому, когда вы добавляете временные метки со значением null: false, которое является значением по умолчанию и часто желательно, все существующие записи являются недействительными.
Но я думаю, что ответ можно улучшить, объединяя два этапа в одну миграцию,а также с использованием более семантического метода add_timestamps:
def change
add_timestamps :projects, default: Time.zone.now
change_column_default :projects, :created_at, nil
change_column_default :projects, :updated_at, nil
end
Вы можете заменить некоторую другую временную метку на DateTime.now
, например, если вы хотите вместо этого создавать / обновлять существующие записи на заре времени.