Você pode apenas alterar o esquema Rails sem migrações?

Aug 17 2020

Estou usando bcrypt para autenticação Rails API - ofc depois de muitas horas tentando descobrir como fazer o Devise funcionar via Rails api, sem sucesso. (tentando fazer API apenas com o frontend React).

Enfim, consegui até que a dívida técnica tivesse que ser paga. BCrypt password_digest e Devise Hashed_password estão em um impasse e não consigo fazer um ignorar o outro. Preciso alterar essa parte do esquema para acomodar o bcrypt. Qual é a melhor maneira de fazer isso?

Respostas

3 max Aug 17 2020 at 18:49

Fazer transformações de banco de dados sem usar migrações é tão fácil quanto executar, o rails dbque iniciará a CLI para seu banco de dados e digitará o SQL. Mas então você precisa repetir essas etapas nos bancos de dados de teste / desenvolvimento / produção e certificar-se de que todos os outros desenvolvedores que trabalham no projeto também executem essas etapas em seus bancos de dados locais.

Este é um processo realmente sujeito a erros e resolver realmente o problema com as migrações é provavelmente muito menos intransponível do que você pensa.

Qual é a melhor maneira de fazer isso?

A melhor solução para a ignorância é o conhecimento .

As migrações do ActiveRecord são apenas uma linguagem específica de domínio (DSL) para criar consultas SQL e um mecanismo para executar migrações em bancos de dados diferentes e manter guias nas quais as migrações foram executadas por meio de uma tabela de metadados no banco de dados.

Mesmo que você não consiga expressar qualquer consulta que esteja tentando realizar por meio da DSL, ainda poderá usar qualquer string SQL arbitrária .