Rails : schema.rb의 기능은 무엇입니까?
내가 생각하는 데 사용 db/schema.rb
A의 Rails
그 때문에, 데이터베이스 스키마를 저장 프로젝트 ActiveRecord
가 무슨 테이블 / 열을 알 수 있습니다.
그러나 이전에 나는 놀랍게도 내가 삭제 한 후에 내 프로젝트가 정상적으로 실행된다는 것을 알았습니다 db/schema.rb
!
그렇다면 Rails
캔 없이도 작동하기 때문에 schema.rb
실제로 무엇을합니까?
는 schema.rb
주로 두 가지 목적 :
데이터베이스 스키마의 최종 현재 상태를 문서화합니다. 특히 마이그레이션이 두 번 이상인 경우 마이그레이션만으로 스키마를 추론하기가 어렵습니다. 선물
schema.rb
만 있으면 그곳을 둘러 볼 수 있습니다. ActiveRecord 자체는 실제로 사용하지 않습니다. 사용자가schema.rb
최신 상태를 유지할 것으로 예상하는 것보다 훨씬 안전하므로 런타임 중에 데이터베이스를 검사합니다 . 그러나 개발자의 혼동을 피하려면 항상 마이그레이션과 함께 최신 파일을 유지해야합니다.테스트에서 데이터베이스 스키마를 채우는 데 사용됩니다. 따라서 a
rake db:schema:dump
는 종종 레이크test:prepare
런의 일부로 실행됩니다. 목적은 테스트 데이터베이스의 스키마가 현재 개발 데이터베이스와 정확히 일치하는 것입니다.
Rails 문서 / 6.1 스키마 파일이란 무엇입니까?
강력한 마이그레이션은 데이터베이스 스키마에 대한 신뢰할 수있는 소스가 아닙니다. 이 역할은 db / schema.rb 또는 Active Record가 데이터베이스를 검사하여 생성하는 SQL 파일에 속합니다. 편집하도록 설계된 것이 아니라 데이터베이스의 현재 상태를 나타냅니다.
전체 마이그레이션 기록을 재생하여 앱의 새 인스턴스를 배포 할 필요가 없으며 오류가 발생하기 쉽습니다. 현재 스키마에 대한 설명을 데이터베이스에로드하는 것이 훨씬 간단하고 빠릅니다.
예를 들어, 테스트 데이터베이스가 생성되는 방법은 다음과 같습니다. 현재 개발 데이터베이스를 덤프 (db / schema.rb 또는 db / structure.sql) 한 다음 테스트 데이터베이스에로드합니다.
스키마 파일은 Active Record 개체의 특성을 빠르게 확인하려는 경우에도 유용합니다. 이 정보는 모델의 코드에 없으며 여러 마이그레이션에 걸쳐 자주 분산되지만 정보는 스키마 파일에 잘 요약되어 있습니다. annotate_models gem은 해당 기능을 원할 경우 스키마를 요약하는 각 모델의 상단에 주석을 자동으로 추가하고 업데이트합니다.
참고 URL : https://stackoverflow.com/questions/9884429/rails-what-does-schema-rb-do
'Development Tip' 카테고리의 다른 글
소켓 연결에 대한 추가 데이터 보내기 (0) | 2020.11.11 |
---|---|
HTML5 범위에 대한 onChange 이벤트 (0) | 2020.11.11 |
JSONP는 사용하기에 안전합니까? (0) | 2020.11.11 |
CSS로 배경 이미지 자르기 / 자르기 (0) | 2020.11.11 |
PhoneGap은 어떤 데이터베이스를 사용하며 크기 제한은 무엇입니까? (0) | 2020.11.11 |