현재이 애플리케이션의 새로운 기능이있는 거대한 레일 애플리케이션과 여러 가지 브랜치로 작업하고 있습니다. 많은 기능을 마이그레이션해야 할 필요가 있습니다. 마스터와 병합하기 전까지는 문제가되지 않아야합니다. schema.rb가 dev 데이터베이스의 정보로 업데이트되었습니다! schema.rb 다른 지점에서 마이그레이션으로 인해 엉망이되었습니다
는 명확히하기 :1. Branch A has migration create_table_x
2. Branch B has migration create_table_y
3. Branch A adds another create_table_z and runs db:migrate
4. You want to merge Branch A with Master and you see table_x, table_y and table_z in the schema.rb of Branch A.
그것은 지점에있는 모든 마이그레이션하기 전에 데이터베이스를 시드 또는 분기마다 데이터베이스를 만들 + 재설정 할 수있는 옵션이 아니다. 거대한 크기의 2GB SQL 데이터로 인해 실행할 수 없습니다.
내 질문 :
정말이 모든 마이그레이션을 다시 도착 이후 저장소에 schema.rb을 유지하기 위해 필요합니까?
그렇다면 데이터베이스 덤프 대신 스키마에서 스키마를 빌드 할 수 있습니까?
당신의 저장소에 schema.rb를 유지해야한다고 생각합니다. 누군가가 이전 파일을 정리하고 과거에 사용하지 않은 몇 가지 마이 그 레이션을 삭제할 수 있습니다. 일정한 schema.rb가없는 경우 엉망이 될 수 있습니다. 스키마 파일은 완전히 다시 작성되지 않고 마이그레이션 할 때마다 갱신됩니다. 그러나 어쨌든 흥미로운 질문입니다. – Mattherick
예, 데이터베이스의 테이블이 부모 또는 분기에 추가되었는지 여부에 관계없이 현재 데이터베이스 구조가 생성되는 문제입니다. 그게 '재건 된'의미였습니다. 누군가가 당신이 마이 그 레이션으로 지점을 전환 할 때마다 마스터에서 데이터베이스를 삭제/복사하는 더 좋은 방법을 알고 있기를 바랍니다 :) – Vikko
가능한 복제본 [git에서 schema.rb를 관리하는 기본 방법은 무엇입니까?] (http : // stackoverflow .com/questions/737854/what-is-the-preferred-way-to-manage-schema-rb-in-git) – Tachyons