1
, 나는 레일 내 마이그레이션 내부 코드의 조각을 사용하고 마이그레이션 해당 SQL 코드 : 레일 그래서
add_column :target_table, :FK, :integer
execute <<-SQL
ALTER TABLE target_table
ADD CONSTRAINT constraint FOREIGN KEY (FK)
REFERENCES some_table (id)
ON UPDATE CASCADE ON DELETE RESTRICT
SQL
그리고 어떤 좋은 프로그래머로, 나는 가능한 한 빨리 짧은 일을 계속하고 싶습니다
.이 언어를 처음 사용하고 있으며 아래 코드가 (모든면에서) 내 SQL과 동일한 지 알고 싶습니다.
add_column :target_table, :FK, :integer, null: false
add_index :targe_table, :FK
PLUS : 그 코드는, 업 방법 내부했다 경우도 내 아래 방법과 같이해야합니까?
- 편집 - 나는 몇 가지 조사를 수행하고이 일을 세 번째 방법에 대해 읽은
:
add_column :target_table, :FK, :integer, null: false, references: some_table
모두 해당하는 것들이다를? 레일 규칙에 따라 인덱스에 적절한 제약 조건이 추가됩니까? 어떤 사람이 그 차이점을 말할 수 있다면 정말 고마워 할 것입니다.
흠 그래서 기본적으로 레일을 사용하는 것이 더 일반적인 것입니다. 그러나 정확히 동일한 결과를 생성합니까? 그리고 down 메소드에 remove_column 호출을 추가해야합니까? –