필자의 레일 마이그레이션은 스키마를 공백과 테이블 열의 위치로 업데이트합니다.레일스 마이그레이션은 항상 공백을 삽입하거나 스키마의 열 순서를 바꾸는 것입니다.
따라서 대부분의 경우 bundle exec rake db:migrate
을 실행하면 다음 시나리오 중 하나가 수행됩니다. 이를 메인 브랜치에 병합하면 다른 개발자들이이 문제를 해결할 수 있으며 레일 이동은 탭과 위치 정렬을 되돌립니다.
우리는 스키마의 마지막 커미터 인 경우 마이그레이션을 실행할 때 팀의 세 개발자 모두 동일한 문제가 있음을 확인했습니다.
방금 다른 개발자와 동일한 postgres to v9.2.4
을 업데이트했습니다. 내가 뭘 시도 할 수있는 아이디어가 있니?
예를 들면 다음
은 무슨 일이 일어나고 있는지 보여주기 위해 자식 차이점이다. 다시 주문 스키마의예 : 스키마에 탭을 추가
create_table "accounts", :force => true do |t|
t.integer "organisation_id"
- t.boolean "active", :default => false
t.text "notes"
+ t.boolean "active", :default => false
end
예 :
create_table "comments", :force => true do |t|
- t.integer "commentable_id", :default => 0
- t.string "commentable_type", :default => ""
+ t.integer "commentable_id", :default => 0
+ t.string "commentable_type", :default => ""
- t.datetime "created_at", :null => false
- t.datetime "updated_at", :null => false
+ t.datetime "created_at", :null => false
+ t.datetime "updated_at", :null => false
공백 문자가 탭이라고 생각하는 이유는 무엇입니까? 'create_table' 중 하나의 전체 버전을 볼 기회가 있습니까? –
@muistooshort 감사합니다. 그들은 공백이 될 수 있습니다. – Coderama
첫 번째 것은 모든 사람들의 열이 데이터베이스 내에서 동일한 순서로 있지 않다는 것을 의미합니다.'psql'의'\ d accounts' 결과를 비교하면 범인을 찾을 수 있습니다. 이것은 여러 가지 방법으로 발생할 수 있으며 문제가되어서는 안됩니다. 두 번째 것은 아마도 정렬 작업 일뿐입니다 (즉,': default => ...'옵션을 모두 정렬하십시오). 그러나'schema.rb' 파일 앞뒤에 전체를 보지 않고서는 말하기 어렵습니다. –