移行せずにRailsスキーマを変更できますか?

Aug 17 2020

Rails API認証にbcryptを使用しています-これは、RailsAPIを介してDeviseを機能させる方法を何時間も試した後のことです。(ReactフロントエンドでのみAPIを実行しようとしています)。

とにかく、私は技術的負債が支払われるまでそれを作りました。BCryptpassword_digestとDeviseHashed_pa​​sswordは膠着状態にあり、一方を他方を無視させることができないようです。bcryptに対応するためにスキーマのその部分を変更する必要があります。これについて行くための最良の方法は何ですか?

回答

3 max Aug 17 2020 at 18:49

移行を使用せずにデータベース変換を実行rails dbするのは、データベースのCLIを開始してSQLを入力する実行と同じくらい簡単です。ただし、テスト/開発/本番データベース全体でこれらの手順を繰り返し、プロジェクトに取り組んでいる他の開発者もローカルデータベースでこれらの手順を実行するようにする必要があります。

これは本当にエラーが発生しやすいプロセスであり、実際に移行の問題を解決することは、おそらくあなたが思っているよりもはるかに克服できないことではありません。

これについて行くための最良の方法は何ですか?

無知に対する最善の解決策は知識です。

ActiveRecordの移行は、SQLクエリを作成するためのドメイン固有言語(DSL)であり、さまざまなデータベースに対して移行を実行し、データベース内のメタデータテーブルを介して移行が実行されたタブを保持するメカニズムです。

DSLを介して実行しようとしているクエリを表現できない場合でも、任意のSQL文字列を使用できます。