Rails의 모든 데이터베이스 작업

4425 단어 rails
일단 Rails에서 프로그래밍을 시작하면 불가피하게 db:migrate 데이터베이스에 적용될 것이다.그리고 마지막 이전을 복구하기 위해 오류를 범했습니다. db:rollback한동안 프로그래밍을 한 후에 우연히 발견했습니다. db:reset 데이터베이스를 삭제하고 다시 만들고 이 새 데이터베이스에서 모든 이전을 실행해야 합니다.마지막으로, 지난번에 리셋한 후에 모든 샘플 데이터를 잃어버렸다는 것을 깨닫고 db:seed 샘플 데이터를 데이터베이스에 삽입할 수 있기 때문에, rails 응용 프로그램은 보기에 매우 리얼하고, 빈번한 실행 db:reset 을 통해 원상태로 복구할 수 있습니다.
지금은 직무에 적합한 Rails 프로그래머가 되어 이 네 가지 임무를 완수하기 쉽다.그러나 만약에 Rails를 파악하고 (이것은 제가 새로운 Rails 개발자로서의 목표 중 하나입니다) 그 마력을 충분히 활용하여 당신의 생활을 가볍게 하려면 Rails가 데이터베이스와 이전을 관리하기 위해 제공하는 나머지 데이터베이스 작업에 대해 알아야 합니다.
모든 데이터베이스 작업 찾기
Rails 애플리케이션 디렉토리에서 다음 명령을 실행하면 Rails에서 제공하는 모든 데이터베이스 작업을 찾을 수 있습니다.
➜  blog (main) ✗ bin/rails help | grep db:

  db:create
  db:drop
  db:environment:set
  db:fixtures:load
  db:migrate
  db:migrate:down
  db:migrate:redo
  db:migrate:status
  db:migrate:up
  db:prepare
  db:reset
  db:rollback
  db:schema:cache:clear
  db:schema:cache:dump
  db:schema:dump
  db:schema:load
  db:seed
  db:seed:replant
  db:setup
  db:structure:dump
  db:structure:load
  db:system:change
  db:version
또한 Rails 저장소의 database_tasks.rb 파일과 databases.rake 디렉토리의 ActiveRecord/Railties 파일에서 이 작업의 소스 코드를 찾을 수 있습니다.ActiveRecord::Tasks::DatabaseTasks 실용 프로그램 클래스는 데이터베이스와 이동을 관리하는 데 사용되는 흔한 작업 배후의 논리를 봉인했다.
다음은 모든 데이터베이스 작업의 간략한 요약이다.
db:create: 데이터베이스가 존재하지 않는 한 데이터베이스를 만듭니다.
db:drop: 데이터베이스를 삭제합니다.
db:environment:set: 내부 테이블에 현재 환경을 설정하여 구조에서 환경 데이터를 찾을 수 없을 때 발생하는 EnvironmentMismatchError 또는 NoEnvironmentInSchemaError를 복구합니다.
db:fixtures:load:fixtures를 불러옵니다. 테스트하고자 하는 샘플 데이터입니다.그것들은 test/fixtures/ 디렉토리의 YAML 파일에 저장됩니다.
db:migrate: 현재 환경에서 실행되지 않은 모든 이전을 실행합니다.
db:migrate:down: 실행 up 방법으로 지난번에 이전한 down 방법으로 실행된 변환을 복원합니다.
db:migrate:redo: 데이터베이스를 한 번 스크롤하고 다시 이동합니다.
db:migrate:status: 이전 상태를 표시합니다.
db:migrate:up: 지정한 이전 실행 up 방법입니다.
db:prepare: 데이터베이스가 존재하지 않으면 실행setup합니다.그렇지 않으면 마이그레이션이 실행됩니다.
db:reset: 현재 환경에 대한 이전을 사용하여 데이터베이스를 리셋합니다.그것은 운행db:drop,db:create,db:migrate 임무를 통해 이 점을 실현한다.
db:rollback: 모드를 이전 버전으로 되돌려서 방금 실행한 이전을 취소합니다.이전n 마이그레이션을 취소하려면 STEP=n를 이 작업으로 전달합니다.
db:schema:cache:clear:db/schema 캐시를 제거합니다.db:schema:cache:dump 작업에서 생성된yml 파일입니다.
db:schema:cache:dump:db/schema 캐시를 만듭니다.yml 파일.
db:schema:dump:db/schema.rb에 따라 데이터베이스 모드 파일db/structure.sql을 만들거나config.active_record.schema_format.
db:schema:load: db/schema.rb에 따라 데이터베이스 모드 파일db/structure.sql 또는 config.active_record.schema_format을 데이터베이스에 불러옵니다.
db:seed: db/seeds.rb 파일에서 피드 데이터를 불러옵니다.
db:seed:replant: 현재 환경의 모든 데이터베이스 테이블을 차단하고 피드를 불러옵니다
db:setup: 모든 데이터베이스db:create를 만들고 모든 모드db:schema:load를 불러오며 피드 데이터db:seed로 초기화합니다.그러나 데이터베이스가 존재하면 먼저 삭제하지 않는다.db:reset를 사용하여 먼저 모든 데이터베이스를 삭제할 수도 있습니다.
db:구조:덤프:폐기됨.이것은 structure.sql 파일을 덤프하는 데 사용됩니다.
db: 구조: 불러오기: 버려졌습니다.이것은 structure.sql 파일을 불러오는 데 사용됩니다.

For some history behind why these tasks were deprecated, check out this wtf. No, seriously.


db:시스템:change:Runningrails newgenerator 데이터베이스를 지정하지 않고 응용 프로그램을 sqlite로 설정합니다.앞으로 데이터베이스를 변경하는 것은 매우 번거롭다.이 작업은 rails db:change SYSTEM=postgresql|mysql|whatever 생성기에 의뢰하여 데이터베이스를 쉽게 변경할 수 있도록 도와 줍니다.
db:version: 현재 구조의 버전 번호를 인쇄합니다.
됐다.Rails는 강력한 성능을 제공합니다.현명하게 그것을 사용하다.
다음까지!

Original Post: All the Database Tasks in Rails

좋은 웹페이지 즐겨찾기