마이그레이션없이 Rails 스키마를 변경할 수 있습니까?
저는 Rails API 인증을 위해 bcrypt를 사용하고 있습니다-이것은 Rails API를 통해 Devise가 작동하도록하는 방법을 알아 내려고 노력한 후 여러 시간이 지나면 ofc입니다. (React 프론트 엔드로만 API를 시도).
어쨌든 기술 부채를 갚아야 할 때까지 해냈습니다. BCrypt password_digest 및 Devise Hashed_password는 교착 상태에 있으며 다른 하나를 무시하도록 만들 수없는 것 같습니다. bcrypt를 수용하기 위해 스키마의 해당 부분을 변경해야합니다. 이것에 대해 가장 좋은 방법은 무엇입니까?
답변
마이그레이션을 사용하지 않고 데이터베이스 변환을 수행하는 것은 데이터베이스에 rails db
대한 CLI를 시작하고 SQL을 입력하는 실행만큼 쉽습니다 . 그러나 그런 다음 테스트 / 개발 / 프로덕션 데이터베이스에서 이러한 단계를 반복하고 프로젝트에서 작업하는 다른 개발자도 로컬 데이터베이스에서 이러한 단계를 수행하도록해야합니다.
이것은 오류가 발생하기 쉬운 프로세스이며 실제로 마이그레이션 문제를 해결하는 것은 생각보다 훨씬 덜 극복 할 수 있습니다.
이것에 대해 가장 좋은 방법은 무엇입니까?
무지에 대한 최선의 해결책은 지식 입니다.
ActiveRecord 마이그레이션은 SQL 쿼리를 생성하는 DSL (Domain Specific Language) 일 뿐이며 다른 데이터베이스에 대해 마이그레이션을 실행하고 데이터베이스의 메타 데이터 테이블을 통해 마이그레이션이 실행 된 탭을 유지하는 메커니즘입니다.
DSL을 통해 수행하려는 쿼리를 표현할 수 없더라도 임의의 SQL 문자열을 사용할 수 있습니다 .