2012-06-05 5 views
0

Rails 앱을 Heroku로 옮길 것을 고려 중입니다.Heroku는 외래 키와 고유 한 제약 조건을 지원합니까?

일반적으로 모든 FK에 ON DELETE 동작이있는 FK 제약 조건을 추가합니다. 지금까지는 레일즈 마이그레이션이 그렇게 할 수있는 방법을 제공하지 않았기 때문에 제약 조건을 추가하기 위해 원시 SQL을 작성하여이 작업을 수행했습니다.

필요한 경우 고유 키를 추가합니다.

Heroku로 이동하면 여전히 제약 조건을 추가 할 수 있습니까?

이 질문을하는 또 다른 방법은 Heroku를 사용하여 내 DB에 직접 액세스 할 수 있습니까? 아니면 마이그레이션에서 할 수있는 일에만 제한되어 있습니까?

당신은 예를 들어, 당신은 connection.execute을 사용하여 마이그레이션에 원하는 SQL을 실행할 수

답변

1

: 당신이 관리하지 않는 경우

def up 
    connection.execute(%q{ 
     alter table t add constraint c check (x in ('a', 'b', 'c')) 
    }) 
end 
def down 
    connection.execute('alter table t drop constraint c') 
end 

당신은 또한 마이그레이션 및 schema.rb에 적절한 FK 지원을 추가 foreigner을 사용할 수 있습니다 원시 SQL을 통해 FK를 생성합니다.

add_index에 대한 :unique => true 옵션을 사용하면 고유 한 제약 조건/인덱스를 얻을 수 있습니다.

나는이 모든 작업을 수행했으며 SQL과 Pl/pgSQL 함수를 추가하고 Heroku의 전용 PostgreSQL 데이터베이스로 트리거합니다. 나는 공유 데이터베이스에서 얼마나 많은 양을 지원하는지 확신 할 수 없지만 고유 한 인덱스는 분명히있을 것이며 FK와 CHECK도 사용할 수있을 것이라고 확신합니다.

관련 문제