¿Puede simplemente cambiar el esquema de Rails sin migraciones?

Aug 17 2020

Estoy usando bcrypt para la autenticación de la API de Rails: esto es ofc después de muchas horas de intentar averiguar cómo hacer que Devise funcione a través de la API de Rails sin éxito. (tratando de hacer API solo con React frontend).

De todos modos, lo hice hasta que hubo que pagar la deuda técnica. BCrypt password_digest y Devise Hashed_password están estancados y parece que no puedo hacer que uno ignore al otro. Necesito cambiar esa parte del esquema para adaptarse a bcrypt. ¿Cuál es la mejor forma de hacerlo?

Respuestas

3 max Aug 17 2020 at 18:49

Hacer transformaciones de base de datos sin usar migraciones es tan fácil como ejecutar, rails dblo que iniciará la CLI para su base de datos y escribir el SQL. Pero luego debe repetir esos pasos en las bases de datos de prueba / desarrollo / producción y asegurarse de que cualquier otro desarrollador que trabaje en el proyecto también realice esos pasos en sus bases de datos locales.

Este es un proceso muy propenso a errores y, en realidad, resolver el problema con las migraciones es probablemente mucho menos insuperable de lo que cree.

¿Cuál es la mejor forma de hacerlo?

La mejor solución a la ignorancia es el conocimiento .

Las migraciones de ActiveRecord son solo un lenguaje específico de dominio (DSL) para crear consultas SQL y un mecanismo para ejecutar migraciones en diferentes bases de datos y controlar qué migraciones se han ejecutado a través de una tabla de metadatos en la base de datos.

Incluso si no puede expresar cualquier consulta que esté tratando de realizar a través del DSL, aún puede usar cualquier cadena SQL arbitraria .