Можете ли вы просто изменить схему Rails без миграций?
Я использую bcrypt для аутентификации Rails API - это происходит после многих часов попыток выяснить, как заставить Devise работать через Rails api, но безрезультатно. (пытаюсь делать API только с интерфейсом React).
В любом случае, я дожил до тех пор, пока не пришлось выплатить технический долг. BCrypt password_digest и Devise Hashed_password зашли в тупик, и я не могу заставить один игнорировать другой. Мне нужно изменить эту часть схемы, чтобы приспособить ее к bcrypt. Как лучше всего это сделать?
Ответы
Преобразование базы данных без использования миграций так же просто, как запуск, rails db
который запустит интерфейс командной строки для вашей базы данных и введет SQL. Но затем вам нужно повторить эти шаги для тестовых / разработки / производственных баз данных и убедиться, что другие разработчики, работающие над проектом, также выполняют эти шаги в своих локальных базах данных.
Это действительно подверженный ошибкам процесс, и на самом деле решение проблемы с миграцией, вероятно, намного менее непреодолимо, чем вы думаете.
Как лучше всего это сделать?
Лучшее решение проблемы незнания - знание .
Миграции ActiveRecord - это просто доменно-ориентированный язык (DSL) для создания SQL-запросов и механизм для выполнения миграций в разных базах данных и отслеживания того, какие миграции были выполнены, через таблицу метаданных в базе данных.
Даже если вы не можете выразить любой запрос, который пытаетесь выполнить через DSL, вы все равно можете использовать любую произвольную строку SQL .