이것은 초보자 용 질문입니다. 마이그레이션 (rake db : migrate)은 개발 중에 사용하는 기능입니까, 아니면 데이터베이스를 최신 상태로 유지하는 생산 도구입니까?Rails에서 이전 작업은 어떻게됩니까?
1
A
답변
1
개발 중에 만 마이그레이션을 사용하고 스키마를로드하고 프로덕션에서 데이터베이스를 시드하려는 것이 이상적입니다. 현실에서는 일부 변경 작업을 수행 한 다음 해를 끼치 지 않고 프로덕션 환경에 배포 할 수 있습니다.
마이그레이션을 통해 데이터베이스에서도 반복 작업을 수행 할 수 있습니다. 뭔가를 추가하는 것을 잊어 버릴 염려가 없습니다. 처음 시작할 때 표가 맞다고 생각한대로 테이블을 만들고 나중에 다른 마이그레이션으로 수정할 수 있습니다. 그것은 기본적으로 아이디어입니다. 그것은 하나의 db 스크립트를 모두 걸러냅니다. 모두 일종의 것입니다. 당신은 사용자 이름과 암호를 사용하여 사용자의 모델이 있고 이메일 필드를 추가해야하는 경우 마이그레이션을 적용 할 때
약간의 예를 들어, 단순히이
rails generate migration AddEmailToUser # this is a convention, but you can name it however you want
class AddEmailToUser < ActiveRecord::Migration
def change
add_column :users, :email, :string
end
end
가 change
방법은 두 가지를 작동 할 , 그리고 그것을 되돌릴 필요가있을 때도 마찬가지입니다. 그것은 깔끔한 Rails 3.1 마술과 같습니다. 그냥 rake db:migrate
을 실행하고 모든 것이 잘 작동합니다, 마이그레이션을 추가 한 후에
마이그레이션의 이전 버전이
class AddEmailToUser < ActiveRecord::Migration
def up
add_column :users, :email, :string
end
def down
remove_column :users, :email
end
end
과 같을 것이다. 마이그레이션의 큰 장점은 사용자가 수동으로 엉망 데이터베이스를하는 경우, 당신은 쉽게 단지
rake db:drop
rake db:create
rake db:migrate
또는
rake db:migrate:reset # this might not work if you messed up your migrations
을 할 수 있다는 것입니다 그리고 당신은 데이터베이스의 올바른 버전
0
마이그레이션은 데이터베이스 스키마의 변경 사항을 추적합니다. 그것으로 인한 모든 변경 (컬럼의 이름 변경, 테이블 변경, 인덱스 추가 등)은 마이그레이션을 통해 이루어져야합니다. 덕분에 여러 프로덕션 서버에 변경 사항을 배포하는 것이 매우 쉽습니다.
관련 문제
- 1. NSFetchedResultsController의 섹션 작업은 어떻게됩니까?
- 2. 폐기 된 작업은 어떻게됩니까?
- 3. 자바에서 serializable 작업은 어떻게됩니까?
- 4. 시스템 종료시 cron 작업은 어떻게됩니까?
- 5. Sorted TStringList, 정렬 작업은 어떻게됩니까?
- 6. 다음과 같은 루프 작업은 어떻게됩니까?
- 7. ziya 차트의 테마 작업은 어떻게됩니까?
- 8. beanstalkd - 예약 된 작업은 수행되지만 완료되지 않은 작업은 어떻게됩니까?
- 9. 완료되지 않은 경우 SQL 작업은 어떻게됩니까?
- 10. Rails에서 문제가있는 이전 마이그레이션을 수정하는 방법은 무엇입니까?
- 11. 인증 자격 증명과 관련하여 iPod touch에서 밀어 넣기 작업은 어떻게됩니까?
- 12. 작업 스레드에서 업데이트 UI 스레드를 호출하는 작업은 어떻게됩니까?
- 13. 두 개의 Tk 인스턴스를 하나의 메인 루프로 만드는 작업은 어떻게됩니까?
- 14. 7 또는 35 패스 삭제 작업은 어떻게됩니까? 왜이 방법을 사용합니까?
- 15. App Engine 대기열에서 queue.yaml이 변경되면 기존 작업은 어떻게됩니까?
- 16. 백업 중에 예약 된 SQL Server 작업은 어떻게됩니까?
- 17. 이전 CMS/블로그 웹 사이트는 어떻게됩니까?
- 18. cron 작업은
- 19. Rails에서 어떤 속성을 업데이트하지 못하도록 제한하지 않으면 어떻게됩니까?
- 20. 후속 작업은 이전 작업의 출력을 즉시 읽을 수 없습니다.
- 21. 레이크 작업은
- 22. 크론 작업은
- 23. 비동기 작업은
- 24. 개미 작업은
- 25. 작업은 구조
- 26. 레이크 작업은
- 27. 공유 작업은?
- 28. 셀러리 작업은
- 29. 비동기 작업은
- 30. 패스 작업은
나 '만든 마스터 링에 어려움이 있습니다. 아무 래도 나는 그것을 잘못 사용하고 있습니다. 왜냐하면 더 많은 열을 추가 할 때 테이블에 이미 일부 열이 이미 있다는 것을 알려주기 때문입니다. 마이그레이션을 사용하는 방법을 읽을 수있는 곳으로 안내 할 수 있습니까? – Roman
@Am. 레일 가이드를 살펴보십시오 http://guides.rubyonrails.org/migrations.html –