[Rails] migrate 때 발생했습니다 : An error has occurred, all later migrations canceled : 오류 처리

【전제】
Rails 6.0.3.1
루비 2.6.3

현재 오리지널 앱을 제작 중.
그 때 발생해 버린 An error has occurred, all later migrations canceled에 대한 에러의 해결 방법에 대해 보았다.
20201020102544_create_bookmarks.rb. 

add_index :bookmarks, [:following_id, :follower_id, :follow_id, :followed_id], unique: true

・20201020102544_create_bookmarks.rb 파일내에 상기 내용의 컬럼을 unique 제약을 걸기 위해서 기술
ターミナル.  
% rails db:migrate



・터미널에서 rails db:migrate_를 걸었던 곳, 위와 같이 rails aborted!
StandardError: An error has occurred, all later migrations canceled:오류가 발생했습니다. 잘 보면 Index name 'index_bookmarks_on_following_id_and_follower_id_and_follow_id_and_followed_id' on table 'bookmarks' is too long; the limit is 64 characters로 기술되어 있어 문자 제한을 넘고 있다고 지적되고 있는 것이 지적되고 있는 것이 지적되고 있다
#before
add_index :bookmarks, [:following_id, :follower_id, :follow_id, :followed_id], unique: true

#after
add_index :bookmarks, [:following_id, :follower_id, :follow_id, :followed_id], unique: true, name: 'bookmarks_index'

· 위와 같이 name : 'bookmarks_index'를 추가하고 설명하고 다시 rails db : migrate를 실행하면 복구했습니다.

※정리※
설마, migration 파일에도 문자 제한이 있다고는 생각하지 않았습니다 꽤 기본적인 일이지만, 또 하나 공부가 되었습니다. 누군가의 도움이되면 기쁩니다

좋은 웹페이지 즐겨찾기