Мне нужно изменить тип столбца от даты к дате для приложения, которое я создаю. Меня не волнуют данные, так как они все еще разрабатываются.
Как я могу это сделать?
Мне нужно изменить тип столбца от даты к дате для приложения, которое я создаю. Меня не волнуют данные, так как они все еще разрабатываются.
Как я могу это сделать?
Сначала в вашем терминале:
rails g migration change_date_format_in_my_table
Затем в вашем файле миграции:
Для Rails> = 3.2:
class ChangeDateFormatInMyTable < ActiveRecord::Migration
def up
change_column :my_table, :my_column, :datetime
end
def down
change_column :my_table, :my_column, :date
end
end
change
метод не используется вместоup
иdown
методов, это потому , что метод не поддерживает определение миграции .change
change_column
Кроме того , если вы используете Rails 3 или более новых вы не должны использовать
up
иdown
методы. Вы можете просто использоватьchange
:источник
This migration uses change_column, which is not automatically reversible.
To make the migration reversible you can either:
1. Define #up and #down methods in place of the #change method.
2. Use the #reversible method to define reversible behavior.
В Rails 3.2 и Rails 4 популярный ответ Бенджамина имеет несколько иной синтаксис.
Сначала в вашем терминале:
Затем в вашем файле миграции:
источник
Есть метод change_column , просто запустите его в вашей миграции с datetime в качестве нового типа.
источник
AFAIK, миграции существуют, чтобы попытаться изменить данные, которые вас интересуют (например, производственные), при внесении изменений в схему. Так что, если это не так, и, поскольку он сказал, что ему нет дела до данных, почему бы просто не изменить тип столбца в исходной миграции с даты на дату и время и повторно запустить миграцию? (Надеюсь, у вас есть тесты :)).
источник
rake db:migrate:reset
нужно.