[Rails] rails migration 대신 ridgepole 사용
공식 문서
도입 이유
현직 현장에 도입할 기회가 있고 개인 개발에도 활용을 시도한 것이 계기가 됐다.
migration이 자주 고장나 수정되기 때문에 열려고 하는 것도 이유 중 하나다.
이점 활용
DB를 변경할 때마다 이전 파일을 만들 필요가 없습니다. (표의 수량과 schema 파일의 수량은 같습니다.)
rails migration 처럼 실패하지 않습니다. (환경 때문에 파일 버전이 일치하지 않습니다.)
가져오기 방법
Gemfile에 다음 코드 추가
gem 'ridgepole'
파일 관리 방법
schema를 관리하는 디렉터리를 만들고 표마다 schema 파일을 만듭니다.
(Schemafile을 만들어 그 안에 모든 표 정보를 쓰는 방법도 있기 때문에 좋아하는 것 같아요.)
例) ファイル名: articles.schema
中身:
create_table "articles", force: :cascade do |t|
t.string "title"
t.text "text"
t.datetime "created_at"
t.datetime "updated_at"
end
※ 公式ドキュメントを参照
파일을 표로 분할할 때는 Schemafile로 각 파일Dir.glob
등을 미리 디렉터리를 읽어야 한다.DB에 적용할 때 Schemafile을 통해 각 테이블의 정보를 참조합니다.DB 적응 방법
공식에서는
config.yml
로부터 DB의 정보를 얻은 것 같지만 rails에서는 DB의 정보가 config/database.yml
에 기재되어 있기 때문에 지정config/database.yml
했다.다음 명령을 실행하여 DB에 테이블을 만듭니다.또한 표 정보를 수정할 때 각 표의 schema 파일에서 열을 삭제하고 데이터 형식을 변경하며 저장하고 다음 명령을 다시 실행하면 된다.명령을 실행할 때 어떤 열, 테이블이 삭제되고 변경되는지 정보를 출력하기 때문에 안심하고 사용할 수 있습니다.
bundle exec ridgepole --file Schemafile -c config/database.yml -E development --apply
Reference
이 문제에 관하여([Rails] rails migration 대신 ridgepole 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/dearhero/articles/0ac678159eea44텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)