색인 이름 'index_foo' on table 'bar' already exists가 나왔을 때 해결
소개
rails 앱을 만드는 동안 제목과 같은 오류로 인카운트했기 때문에 비망록으로
색인 이름 'index_foo' on table 'bar' already exists
같은 이름의 index가 있다는 오류입니다.
index는 뭐라고하는 사람은 이쪽을 부디 -> 데이터베이스에 인덱스를 붙이는 방법
우선 mysql에 로그인하여 상태 확인
참고 기사 rails generate migration 에러가 나왔을 때의 대처법
terminal$ mysql -u ユーザ名 -D database名 -p
-u ユーザ名指定するオプション
-D 接続先databaseを指定するオプション
-p パスワードを送信するオプション
데이터베이스 이름을 모르는 경우 config/database.yml
migration이 어디까지 진행되고 있는지 확인한다. rails의 log에도 써 있지만, 다시 확인.
mysqlmysql> select * from schema_migrations;
실행된 마이그레이션 파일이 나옵니다.
제 경우에는 20200613이 실행되고 있어야 합니다만 나오지 않았습니다.
테이블이 작성되었는지 확인
mysqlmysql> show columns from hoges; # hogeには作成したtable名を入れてください
테이블이 존재하는 것 같습니다. 그렇지 않으면 오류가 발생합니다.
다음은 index가 붙어 있는지 확인합니다.
mysqlmysql> show index from hoges;
색인이 붙여져 있습니다.
오류 내용은 同じ名前のindexがすでに存在しますよ
였습니다.
그렇다면 마이그레이션 파일을 쓰지 못할 것입니다.
익숙하지 않지만, 생각하는 절로 이번은 모델 작성시에 references
를 사용했습니다. 이거!
조사해 보면 外部キー作成時は自動でindexを貼ってくれる
같다. 이중으로 붙이고 있었습니다...
다음 그림은 좋은 예입니다.
고쳤습니다↓
외래 키를 만들 때 조심하십시오.
참고 기사
외래 키를 참조 유형 열에 저장
외래 키 개요 및 제약 조건을 사용하는 장점 단점
Reference
이 문제에 관하여(색인 이름 'index_foo' on table 'bar' already exists가 나왔을 때 해결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nossy/items/81f54a10ba5d07c184ef
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
같은 이름의 index가 있다는 오류입니다.
index는 뭐라고하는 사람은 이쪽을 부디 -> 데이터베이스에 인덱스를 붙이는 방법
우선 mysql에 로그인하여 상태 확인
참고 기사 rails generate migration 에러가 나왔을 때의 대처법
terminal
$ mysql -u ユーザ名 -D database名 -p
-u ユーザ名指定するオプション
-D 接続先databaseを指定するオプション
-p パスワードを送信するオプション
데이터베이스 이름을 모르는 경우
config/database.yml
migration이 어디까지 진행되고 있는지 확인한다. rails의 log에도 써 있지만, 다시 확인.
mysql
mysql> select * from schema_migrations;
실행된 마이그레이션 파일이 나옵니다.
제 경우에는 20200613이 실행되고 있어야 합니다만 나오지 않았습니다.
테이블이 작성되었는지 확인
mysql
mysql> show columns from hoges; # hogeには作成したtable名を入れてください
테이블이 존재하는 것 같습니다. 그렇지 않으면 오류가 발생합니다.
다음은 index가 붙어 있는지 확인합니다.
mysql
mysql> show index from hoges;
색인이 붙여져 있습니다.
오류 내용은
同じ名前のindexがすでに存在しますよ
였습니다.그렇다면 마이그레이션 파일을 쓰지 못할 것입니다.
익숙하지 않지만, 생각하는 절로 이번은 모델 작성시에
references
를 사용했습니다. 이거!조사해 보면
外部キー作成時は自動でindexを貼ってくれる
같다. 이중으로 붙이고 있었습니다...다음 그림은 좋은 예입니다.
고쳤습니다↓
외래 키를 만들 때 조심하십시오.
참고 기사
외래 키를 참조 유형 열에 저장
외래 키 개요 및 제약 조건을 사용하는 장점 단점
Reference
이 문제에 관하여(색인 이름 'index_foo' on table 'bar' already exists가 나왔을 때 해결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nossy/items/81f54a10ba5d07c184ef
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(색인 이름 'index_foo' on table 'bar' already exists가 나왔을 때 해결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nossy/items/81f54a10ba5d07c184ef텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)