이 예제와 같이 열의 기본 설정을 설정하는 Rails 마이그레이션이 문제가 있습니다.
def self.up
add_column :column_name, :bought_at, :datetime, :default => Time.now
end
나중에 마이그레이션 할 때 기본 설정을 삭제하고 싶습니다. 레일 마이그레이션을 사용하여 어떻게 설정합니까?
현재 해결 방법은 다음과 같이 rails 마이그레이션에서 사용자 지정 sql 명령을 실행하는 것입니다.
def self.up
execute 'alter table column_name alter bought_at drop default'
end
그러나 기본 데이터베이스가이 명령을 해석하는 방법에 따라 달라지기 때문에이 방법이 마음에 들지 않습니다. 데이터베이스가 변경되면이 쿼리가 더 이상 작동하지 않을 수 있으며 마이그레이션이 중단 될 수 있습니다. 그렇다면 레일의 열에 대한 기본 설정 실행 취소를 표현하는 방법이 있습니까?
CHARACTER VARYING
열의 기본값을 삭제하지 않고 그냥 설정하십시오NULL::character varying
.