본문 바로가기
Programming/Ruby On Rails

[Ruby On Rails] database migration 관련 명령어 모음

by 가론노미 2023. 5. 18.

Rails는 데이터베이스와 관련하여 여러 기능들을 지원하고 있다.

databeses.rake 파일에서 사용 가능한 명령어들을 확인할 수 있다.

https://github.com/rails/rails/blob/v5.2.6/activerecord/lib/active_record/railties/databases.rake

 

GitHub - rails/rails: Ruby on Rails

Ruby on Rails. Contribute to rails/rails development by creating an account on GitHub.

github.com

 

  • db:create
    • 현재 환경에 대한 데이터베이스를 생성
  • db:create:all
    • 모든 환경에 대한 데이터베이스를 생성
  • db:drop
    • 현재 환경에 대한 데이터베이스를 삭제
  • db:drop:all
    • 모든 환경에 대한 데이터베이스를 삭제
  • db:migrate
    • 아직 실행되지 않은 현재 환경에 대한 마이그레이션들을 실행
    • 마이그레이션을 실행할 경우 schema_migrations 테이블에 UTC 타임스탬프 마이그레이션 식별자가 추가
  • db:migrate:up
    • 하나의 특정 마이그레이션을 실행
  • db:migrate:down
    • 하나의 특정 마이그레이션을 롤백
  • db:migrate:status
    • 마이그레이션 파일 이름들과 해당 파일의 마이그레이션 상태를 up/down으로 확인 가능
    • 현재 마이그레이션이 어디까지 진행되었는지 확인할 수 있음
  • db:rollback
    • schema_migrations 테이블의 마지막 마이그레이션 파일을 롤백
  • db:forward
    • 현재 스키마 버전을 다음 스키마 버전으로 진행
  • db:seed
    • db/seed.rb 파일을 실행하여 데이터를 추가
    • 개발 및 테스트 환경에서 데이터베이스를 자주 로드해야 할 때 유용
  • db:schema:load
    • 현재 환경의 데이터베이스에 schema.rb 파일을 로드하여 테이블 생성
  • db:schema:dump
    • 현재 환경의 데이터베이스 구조와 일치하도록 스키마 파일을 업데이트 또는 생성
  • db:setup
    • db:schema:load, db:seed를 실행
    • 스키마를 로드하고, 시드 데이터로 초기화 (db:reset을 사용하여 데이터베이스를 먼저 삭제할 수도 있음)
  • db:reset
    • db:drop, db:setup 실행
    • 데이터베이스를 삭제하고 현재 환경에 맞게 db/schema.rb 파일을 로드하여 재생성한 후 시드 데이터를 로드
  • db:migrate:redo
    • 지정된 마이그레이션에 따라 (db:migrate:down db:migrate:up) 또는 (db:rollback db:migrate)를 실행
  • db:migrate:reset
    • db:drop, db:create, db:migrate 실행
    • 현재 환경에 대한 마이그레이션 파일들을 사용하여 데이터베이스를 초기화합니다.