Rails migration에서 typo를 눈치채지 못하고 4시간 동안 녹았다면?(ta)[EOF]

아무한테도 소용없다고 생각하지만 자제하세요.

문제.


ALTER TABLE `hoge` ADD CONSTRAINT fk_hoge FOREIGN KEY (`foo`) REFERENCES `fuga` (`bar`);
이러한 외부 버튼 제한 추가 조회가 통과되었습니다.
이름
add_foreign_key :hoge, :fuga, colmun: :foo , primary_key: :bar, name: :fk_hoge
의migrationKey column 'fuga_id' doesn't exist in table 오류 팝업
나는 네 시간 동안 고민했다.

까닭


×
add_foreign_key :hoge, :fuga, colmun: :foo , primary_key: :bar, name: :fk_hoge

add_foreign_key :hoge, :fuga, column: :foo , primary_key: :bar, name: :fk_hoge
알겠어요?
…….
×
colmun

column
내가 발견하기 전에
나는 심지어 Active Record의 원본 코드를 쫓아갔다.
왜냐하면 Key column 'fuga_id' doesn't exist in tablefuga_id 행동 찾기 부분
= 외부 키를 붙여 넣을 테이블 열을 지정할 때 눈치챘겠지...
다들 어떻게 이런 동적 언어의 typo를 싸웠을까?
린터(rubocop) 같은 거지...

참고 자료


여기까지 쫓아올 필요는 없는데...
  • Rails RDoc
  • https://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html#method-i-add_foreign_key
  • rails/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb | GitHub
  • https://github.com/rails/rails/blob/46337faa795fa40dedb1b9b906bec1793358d7f3/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb#L84
  • 좋은 웹페이지 즐겨찾기