마이그레이션없이 Rails 스키마를 변경할 수 있습니까?

Aug 17 2020

저는 Rails API 인증을 위해 bcrypt를 사용하고 있습니다-이것은 Rails API를 통해 Devise가 작동하도록하는 방법을 알아 내려고 노력한 후 여러 시간이 지나면 ofc입니다. (React 프론트 엔드로만 API를 시도).

어쨌든 기술 부채를 갚아야 할 때까지 해냈습니다. BCrypt password_digest 및 Devise Hashed_password는 교착 상태에 있으며 다른 하나를 무시하도록 만들 수없는 것 같습니다. bcrypt를 수용하기 위해 스키마의 해당 부분을 변경해야합니다. 이것에 대해 가장 좋은 방법은 무엇입니까?

답변

3 max Aug 17 2020 at 18:49

마이그레이션을 사용하지 않고 데이터베이스 변환을 수행하는 것은 데이터베이스에 rails db대한 CLI를 시작하고 SQL을 입력하는 실행만큼 쉽습니다 . 그러나 그런 다음 테스트 / 개발 / 프로덕션 데이터베이스에서 이러한 단계를 반복하고 프로젝트에서 작업하는 다른 개발자도 로컬 데이터베이스에서 이러한 단계를 수행하도록해야합니다.

이것은 오류가 발생하기 쉬운 프로세스이며 실제로 마이그레이션 문제를 해결하는 것은 생각보다 훨씬 덜 극복 할 수 있습니다.

이것에 대해 가장 좋은 방법은 무엇입니까?

무지에 대한 최선의 해결책은 지식 입니다.

ActiveRecord 마이그레이션은 SQL 쿼리를 생성하는 DSL (Domain Specific Language) 일 뿐이며 다른 데이터베이스에 대해 마이그레이션을 실행하고 데이터베이스의 메타 데이터 테이블을 통해 마이그레이션이 실행 된 탭을 유지하는 메커니즘입니다.

DSL을 통해 수행하려는 쿼리를 표현할 수 없더라도 임의의 SQL 문자열을 사용할 수 있습니다 .