1 년 넘게 작성된 수십 개의 Rails DB 마이그레이션이 있습니다. 데이터베이스를 하나의 마이그레이션으로 집계하여 현재 존재하는 데이터베이스에 대한 전체 DDL 문을 볼 수 있습니까? 우리가 어떻게 얻었는지에 대한 모든 역사가없는 현재의 스냅 사진이 필요합니다.Rails의 전체 마이그레이션
답변
가능하지만 마이 그 레이션을 통합하는 것이 좋습니다.!
아마 질문 :
- 을 왜이 작업을 수행 할 수 있습니까?
- 얼마나 자주 VERSION = 0으로 마이그레이션 한 다음 다시 백업해야합니까?
- 뭔가가 실제로 고장 났습니까? (그렇지 않다면 고치지 마라)
나는 한 번 같은 문제가 발생했다. 스키마를 변경하면 올바르게 마이그레이션되지 않기 때문에 마이그레이션 순서를 변경했다. 더 이상 내려. 나는 그것을 다시하는 것을 주저 할 것이다.
필드 또는 색인을 추가하는 마이 그 레이션이있는 경우 모델의 기본 마이 그 레이션과 결합 할 수는 있지만 은 더 이상 예전 상황을 재현 할 수 없음을 조심하십시오. 이전의 DB 덤프는과 호환되어야하는 이전 번호와 호환되지 않을 수 있습니다. 아마도 집계에 대한 가장 큰 인수 일 수 있습니다.
기술적으로 스키마를 덤프 한 다음 직접로드 할 수 있습니다 한 가지 방법 :
rake db:schema:dump
다음 스키마 덤프 파일 DB/스키마의 내용으로 하나의 새로운 마이그레이션을 작성합니다.
- 다음은
RB
몇 가지 유사한 질문들 0P.S : 나는 그것이 유용 마이그레이션이 타임 스탬프를 사용하지 않는 이전의 마이그레이션 번호 매기기 방식을 고수하는 것으로 -이 더 잘 작동 나를 위해은 (어떤 순서 그들이 쉽게 볼 수있다).
당신의 설정/application.rb 파일 :
config.active_record.timestamped_migrations = false
DB에 현재 스키마를로드하기 만하면됩니다.
rake db:schema:load RAILS_ENV=[production, test, etc.]
이 스키마의 schema.rb
파일의 버전을하며, 각각의 마이그레이션을 실행하지 않고 DB에로드합니다.
참고 : 데이터를 DB에 저장하는 마이그레이션 (예 : 기본값)이있는 경우 해당 데이터는 DB에 추가되지 않습니다.
DB에 기본값을로드해야하는 경우 마이그레이션과 관계없이 사용자 정의 레이크 작업을 통해 더 잘 수행 할 수 있습니다.
당신은 결코 데이터베이스 및 실행을 얻기 위해 모든 마이그레이션을 사용해서는 안된다. 현재 schema.rb는 항상 DB가 '현재와 같이'보이는 것입니다.
만약 당신이 거기에 그들의 톤을 가지고 있다면 정기적으로 마이 그 레이션을 자르는 것이 좋습니다. 마지막으로 중요한 응용 프로그램이 schema.rb이므로 좋은 응용 프로그램 중 하나를 사용하여 폴더에서 50 개의 마이그레이션을 제거했습니다. 마이그레이션은 바로 으로 이동하여을 마이그레이션하고 데이터베이스의 기존 상태를 변경합니다. 그들은 한 번만 실행해야합니다.
- 1. Ruby on Rails의 MySQL 전체 텍스트 검색
- 2. Rails/MySql 마이그레이션 마이그레이션
- 3. Rails의 위젯
- 4. 마이그레이션
- 5. ruby on rails의 조인 테이블 사용
- 6. Rails의 ActiveRecord :: Migration을 사용한 외래 키?
- 7. Ruby/Rails - 역방향 마이그레이션 - DDL에서 Ruby 코드
- 8. 레일 마이그레이션 또는 수동 데이터베이스 생성?
- 9. has_many와의 문제 : Ruby on Rails의 연결을 통해
- 10. Rails의 alter_table 메소드와 어떤 관계가 있습니까?
- 11. Ruby on Rails의 'WebControls'
- 12. Rails의 데이터 반복자?
- 13. Ruby on Rails의 NoMethodError
- 14. Rails의 체크 박스
- 15. Rails의 프로덕션 서버에서 디버깅
- 16. Ruby on Rails의 양식
- 17. Rails의 재귀 적 경로
- 18. Rails의 버전은 무엇입니까?
- 19. Rails의 응용 컨텍스트
- 20. Rails의 네트워크에서 파일 목록보기
- 21. Rails의 possible_controllers 문제
- 22. Rails의 일반적인 도우미는 무엇입니까?
- 23. Ruby on Rails의 양식
- 24. Rails의 named_scope 상속은 무엇입니까?
- 25. Mongoid와 Rails의 필드 별칭
- 26. Rails의 날짜/시간 비교
- 27. Rails의 모델에서 singular_association_ids에 액세스
- 28. Rails의 연관 모델에있는 조건문
- 29. Ruby on Rails의 SUBSTRING_INDEX?
- 30. 디자인에서 프로그래밍, AS3으로의 마이그레이션
자세한 답변을 보내 주셔서 감사합니다. 내가 원했던 바로 그 이유는 DB 스키마를 편리하게 볼 수있는 것이 었습니다. Rails는 많은 참조 용 RDBMS 작업 (예 : 참조 무결성, 제약)을 선호하기 때문에 한 곳에서 볼 수 있습니다. –
'rake db : schema : dump'는 내가 필요한 것입니다. –
도움이 되니 기쁩니다! – Tilo