마이그레이션 중 하나를 롤백하는 중에 문제가 발생했습니다. Rails가 임시 인덱스를 사용하여 마이그레이션을위한 임시 테이블을 생성하는 것처럼 보입니다. 이 테이블의 실제 인덱스는 64 자 미만이지만 Rails가 임시 인덱스를 만들려고 할 때마다 64 자 이상의 이름으로 바뀌고 오류가 발생합니다. 내가 열 이름을 변경 한레일스 이전에서 임시 인덱스 이름이 너무 깁니다.
== AddColumnNameToPrices: reverting ============================================
-- remove_column(:prices, :column_name)
rake aborted!
An error has occurred, this and all later migrations canceled:
Index name 'temp_index_altered_prices_on_column_and_other_column_and_third_column' on table 'altered_prices' is too long; the limit is 64 characters
하지만 예는 아직 거기 :
class AddColumnNameToPrices < ActiveRecord::Migration
def self.up
add_column :prices, :column_name, :decimal
end
def self.down
remove_column :prices, :column_name
end
end
여기에 내가지고있어 오류가있다 :
여기 내 간단한 마이그레이션합니다. 두 번째 마이그레이션에서 변경 작업을 수행 할 수는 있지만 여전히이 테이블에서 마이그레이션을 롤백 할 수 없음을 의미합니다. 새 마이그레이션에서 인덱스의 이름을 바꿀 수는 있지만 여전히이 단일 마이그레이션에서 나를 잠급니다.
누구든지이 문제를 해결하는 방법에 대한 아이디어가 있습니까?
인덱스의 실제 이름이 포함 된 것을입니까? – cristian
아니요 아니요. 실제 프로젝트에서 조금 추상화하려고했습니다. – caitlin