ユーザーが管理フロントエンド インターフェイスを介して database.yml の内容を変更できるようにするシステムを構築しています。
database.yml への変更は、アプリケーションが再起動されるまで明らかに影響しません。ユーザー (物理的なボックスへの SSH アクセスを持っていない可能性があります) にアプリケーションを手動で再起動させるのではなく、ActiveRecord に起動後の構成を強制的に再読み込みさせる方法が必要です。
サーバーの再起動を要求するのではなく、最初の起動後に ActiveRecord を強制的に再初期化する方法はありますか?
根拠
これには 2 つの使用例があります - a) 初期セットアップ ウィザード b) sqlite 評価データベースから本番サポート データベースへの移行。
初期設定ウィザード
アプリケーションをインストールして初めて起動すると、セットアップ ウィザードが表示されます。これにより、sqlite を使用して組み込みの評価データベースを選択するか、本番環境でサポートされているデータベースを指定することができます。データベースのプロパティを指定する必要があります。yml
ユーザーにサーバー上のファイルを編集するように求めるのではなく、初期設定時にフロントエンドで編集できるようにする必要があります。
sqlite 評価データベースから本番対応データベースへの移行
ユーザーが組み込みの評価データベースを使用することを選択したが、alter が実稼働データベースに移行したい場合、この変更を反映するためにデータベース設定を更新する必要があります。上記と同じ理由で、ユーザーが構成ファイルを編集する必要があるのではなく、フロント エンドが必要です。特に、ユーザーがアプリケーションを起動しようとしたときに機能しないことをユーザーが発見するのではなく、アプリケーションから接続やアクセス許可などを検証できるためです。それらはアクティブレコードの例外を受け取ります。