Programing

ROR 마이그레이션 중에 열 유형을 Date에서 DateTime으로 변경

lottogame 2020. 4. 20. 19:14
반응형

ROR 마이그레이션 중에 열 유형을 Date에서 DateTime으로 변경


만들고있는 앱의 열 유형을 날짜에서 날짜 / 시간으로 변경해야합니다. 데이터가 아직 개발 중이므로 신경 쓰지 않습니다.

어떻게해야합니까?


터미널에서 먼저 :

rails g migration change_date_format_in_my_table

그런 다음 마이그레이션 파일에서

레일> = 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 이상을 사용하는 경우 upand 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의 방법은, 단지 새로운 형식으로 날짜로 마이그레이션을 실행합니다.

change_column(:my_table, :my_column, :my_new_type)

AFAIK, 마이그레이션은 스키마를 변경할 때 관심있는 데이터 (예 : 프로덕션)를 재구성하려고 시도합니다. 따라서 그것이 틀린 것이 아니라면 데이터에 신경 쓰지 않는다고 말하면서 원래 마이그레이션에서 날짜별로 날짜 시간에서 열 유형을 수정하고 마이그레이션을 다시 실행하는 것이 어떻습니까? (테스트가 있습니다 :)).

참고 URL : https://stackoverflow.com/questions/5191405/change-a-column-type-from-date-to-datetime-during-ror-migration

반응형