作成しているアプリの列の種類を日付から時刻に変更する必要があります。データはまだ開発中なので、気にしません。
これどうやってするの?
まずあなたの端末で:
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
また、Rails 3以降を使用している場合は、up
およびdown
メソッドを使用する必要はありません。 change
を使うことができます。
class ChangeFormatInMyTable < ActiveRecord::Migration
def change
change_column :my_table, :my_column, :my_new_type
end
end
Rails 3.2とRails 4では、Benjaminの よくある回答 の構文が少し異なります。
まずあなたの端末で:
$ Rails g migration change_date_format_in_my_table
それからあなたの移行ファイルで:
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_column メソッドがあります。新しいタイプとしてdatetimeを使ってマイグレーションの中でそれを実行してください。
change_column(:my_table, :my_column, :my_new_type)
私の知る限り、移行はスキーマを変更するときに気になるデータ(つまり本番)を作り直すことです。それが間違っていない限り、そして彼がデータを気にしないと言っていたので、元のマイグレーションのカラムタイプを日付から日付/時刻に変更してマイグレーションを再実行しないのはなぜでしょうか。 (あなたがテストを持っていることを願っています:))。