데이터베이스 트러블슈팅 및 디버깅
GitLab 개발 환경에서 데이터베이스 관련 문제를 진단하고 해결하는 방법과 성능 이슈 분석 도구 사용법을 설명합니다.
이 섹션은 데이터베이스 관련 문제가 발생했을 때 참고할 수 있는 복사-붙여넣기 가능한 내용을 제공합니다. 첫 번째 단계로 Slack에서 오류를 검색하거나, Google에서 GitLab <내 오류> 로 검색하세요. 사용 가능한 RAILS_ENV : production (일반적으로 GDK의 메인 데이터베이스에는 사용하지 않지만, Omnibus 같은 다른 설치 환경에서는 필요할 수 있습니다). development (GDK의 메인 DB입니다). test (RSpec 등의 테스트에 사용됩니다). 모두 삭제하고 새로 시작하기 # 빈 DB로 모두 삭제하고 새로 시작하려면 (약 1분): bundle exec rake db:reset RAILS_ENV=development 빈 DB에 샘플 데이터를 시딩하려면 (약 4분): bundle exec rake dev:setup 샘플 데이터와 함께 모두 삭제하고 새로 시작하려면 (약 4분). 이 명령은 db:reset 도 실행하며 DB 전용 마이그레이션도 수행합니다: bundle exec rake db:setup RAILS_ENV=development 테스트 DB에 문제가 있는 경우, 중요한 데이터가 포함되어 있지 않으므로 안전하게 모두 삭제할 수 있습니다: bundle exec rake db:reset RAILS_ENV=test 마이그레이션 관리 # bundle exec rake db:migrate RAILS_ENV=development : 머지 리퀘스트에서 가져온 미적용 마이그레이션을 실행합니다. bundle exec rake db:migrate:status RAILS_ENV=development : 모든 마이그레이션이 up 또는 down 상태인지 확인합니다. bundle exec rake db:migrate:down:main VERSION=20170926203418 RAILS_ENV=development : 마이그레이션을 롤백합니다. bundle exec rake db:migrate:up:main VERSION=20170926203418 RAILS_ENV=development : 마이그레이션을 적용합니다. bundle exec rake db:migrate:redo:main VERSION=20170926203418 RAILS_ENV=development : 특정 마이그레이션을 재실행합니다. 위 명령에서 main 을 다른 이름으로 바꾸면 main 대신 ci 데이터베이스를 대상으로 실행할 수 있습니다. 데이터베이스에 수동으로 접근하기 # 다음 명령 중 하나로 데이터베이스에 접근하세요. 모두 동일한 결과를 제공합니다. gdk psql -d gitlabhq_development bundle exec rails dbconsole -e development bundle exec rails db -e development \q : 종료/나가기 \dt : 모든 테이블 목록 보기 \d+ issues : issues 테이블의 칼럼 목록 보기 CREATE TABLE board_labels(); : board_label