2017-05-02 19 views
0

私のアプリケーションにはSphinx検索エンジンを使用しています。私のアプリケーションサーバーに基づいていくつかの値を動的に更新するためにsphinx.confファイル内にルビコードを追加したいホスト名? sphinx.confの中でルビコードを実行することは可能ですか?以下のようなもの.confファイル内に動的コード/ルビコードを追加する方法

{ 
    type = mysql 
    sql_host = testHost 
    sql_user = test 
    sql_pass = <%= D.decrypt("encrypted password") %> // Ruby CODE 
    sql_db = {{database_name}} 
    sql_query_pre = SET TIME_ZONE = '+0:00' 
    sql_query_pre = SET SESSION group_concat_max_len = 32768 
    sql_query_pre = SET NAMES utf8 
} 
+0

erbテンプレートと 'File.write'を使用してください。何か不足していますか? –

+0

内部で.confファイルを直接実行したいだけです。 – loganathan

答えて

0

要するに、不可能ではありません。 Sphinxは.confファイルでRubyを直接実行することはできません。

言われて、あなたの設定ファイルのうち、パスワードを維持するために、環境変数を使用することができ

{ 
    type = mysql 
    sql_host = testHost 
    sql_user = test 
    sql_pass = $SQL_PASS 
    sql_db = {{database_name}} 
    sql_query_pre = SET TIME_ZONE = '+0:00' 
    sql_query_pre = SET SESSION group_concat_max_len = 32768 
    sql_query_pre = SET NAMES utf8 
} 

あなたはスフィンクスを実行したとき、あなたはコマンドラインで環境変数を設定することができ、次のいずれか

SQL_PASS="mypassword123" indexer -c /path/to/config 

またはあなたの.bashrcにそれを設定します。

export SQL_PASS="mypassword123" 

あるいは摩擦でそれを設定しますY:

ENV["SQL_PASS"] = "mypassword123" 

は覚えておいてくださいに関係なく、あなたが何を選ぶかの方法、あなたはスフィンクスを実行前変数環境を設定してはなりません。

関連する問題