DB를 마이 그 레이션하려고 할 때 오류가 발생합니다. , 마이그레이션, 마스터로 다시 전환하고, 레일 DB 마이그레이션 오류 : 관계가 이미 존재합니다.
- 는 DB가 새로운 지점, 스캐 폴딩 '요청'을 만들어 약간의 물건 (db)을 옮겼다. 그리고 모든 것이 잘 작동했다.
heroku postgres 데이터베이스에서 가져온 것이므로 실제 데이터가 제대로 작동하는지 테스트 할 수 있습니다. 다음 DB의 마이그레이션을 시도했지만 나에게이 오류 준 :
rake db:migrate == CreateRequests: migrating ================================================= -- create_table(:requests) NOTICE: CREATE TABLE will create implicit sequence "requests_id_seq1" for serial column "requests.id" rake aborted! An error has occurred, this and all later migrations canceled: PG::Error: ERROR: relation "requests" already exists : CREATE TABLE "requests" ("id" serial primary key, "title" character varying(255), "content" text, "category" character varying(255), "status" character varying(255), "requested_track_id" integer, "created_at" timestamp, "updated_at" timestamp)
어떤 아이디어?
암시 적 시퀀스를 만드는 것에 대한 메시지는 오류가 아니며 단지 알림 (정보 메시지입니다. 이는 활성 레코드가 기본적으로 'id' 열에 대해 자동 증가 열을 사용하는 모든 테이블에 대해 일반적입니다.오류는'requests' 테이블이 이미 존재한다는 것입니다. – qqx
그 메시지를받는 경우 어떻게해야합니까? 필자는 마이그레이션을 생성하여 테이블을 삭제 한 다음 마이그레이션을 다시 작성하여 동일한 테이블을 생성함으로써 해결했습니다. 더 좋은 방법이 있습니까? – kibaekr
데이터베이스 스키마는 동일한 환경을 가정 한 모든 지점의 최종 결과가 될 것입니다. 분기를 병합 할 때까지는 코드가 실제로 기본 db에서 발생한 일련의 마이그레이션을 표시하지 않아도됩니다. 또한 마이그레이션을 실행할 때 이전 마이그레이션에 대한 검사는 현재 마이그레이션에 대해서만 이루어 지므로 잠재적 충돌을 나타낼 수 있습니다. 하나의 지점에 모든 마이그레이션을 유지하는 것이 좋습니다. –