나는 (현재) Rails 개발자가 아니므로이 점에 대해 잘 모르는 부분을 용서해주십시오.Migration Script는 Rails 2.1 이상에서 어떻게 적용됩니까?
내가 항상 레일즈에 대해 좋아했던 한 가지 사항은 마이그레이션과 이것이 모든 언어와 플랫폼에서 공통적 인 필요를 채우는 방법입니다. 이 말을 듣고, 2.1에서 변경 한 내용으로 어떤 시나리오가 발생할 것인지 이해하고 싶습니다.
레일 2.1 이상에서는 마이그레이션 논리에 두 가지 변경 사항을 적용했습니다. 첫 번째는 소스 제어에 파일을 추가하기 전에 동일한 파일에서 동시에 2 명의 개발자가 작업 할 확률을 줄이기 위해 생성시 타임 스탬프 기반 스크립트 이름을 사용하는 것이 었습니다. 따라서 002_test.rb 대신 스크립트가 생성 될 때 20090729123456_test.rb가됩니다.
두 번째 항목은 Schema_Info 테이블이 최신 버전 번호뿐만 아니라 마이그레이션 목록을 제공하는 Schema_Migrations 테이블로 대체되었습니다.
레일스 소스를 살펴보면 Schema_Migration 테이블에있는 최대 버전으로 스키마의 "현재 버전"이 필요하다는 것을 알았습니다.
여기에 내가 알아 내기 위해 노력하고있어 시나리오는 다음과 같습니다
개발자 A는 새로운 스크립트를 생성합니다 20090729120000_test.rb.
개발자 B는 새 스크립트 인 20090729130000_test.rb를 생성합니다.
개발자 B는 먼저 버전 번호를 지정하지 않고 개발자 A의 스크립트가 아직 추가되지 않았다고 가정하여 스크립트를 데이터베이스로 마이그레이션합니다.
개발자 A가 스크립트를 추가하고 스크립트 버전 (타임 스탬프 기준)이 현재 적용된 버전보다 적기 때문에 어떤 일이 발생합니까?