2012-03-07 7 views
1

私は自分のアプリのマイグレーションを作成しようとしています。このアプリでは、アプリの起動時に別のサービスを起動しようとするgemを使用しています。どうやら、...Railsアプリケーションが移行によってアクティブ化されたときを知るには?

rails generate migration AddSomeStuffToTable stuff:string 

を移行を作成...アプリを起動し、サービスを起動するために接続しようと、この宝石。マイグレーションを生成してアプリケーションを起動すると、サービスの起動ができないように見えるので、スリープしてからもう一度やり直して、実際にはマイグレーションを実行することはありません。この宝石で

は、私はすでに熊手のために、この扱ってきたので、これは私がこれまで持っているものです:移行する、すくいデシベル:

MyService.start unless defined? Rake or defined? IRB 

これは(すくいデシベルのようなすくい問題を扱います:私が知っている限り)はレイクタスクではないマイグレーションの作成をどのように処理できますか?

+0

は、あなたが考慮しました手動で移行ファイルを作成しますか?それとも純粋な好奇心ですか? :) –

+0

これは代替案ですが、レールジェネレータを使用できるはずです。 –

答えて

0

あなたはサービスを無効にするために、環境変数を使用して試みることができる:しかし、私は複数の開発者がでている場合は特に、これはうまくスケール疑う

NO_SERVICE=1 rails generate migration AddSomeStuffToTable stuff:string 

MyService.start unless ENV['NO_SERVICE'] 

をそして、このようなあなたのコマンドを実行します。アプリ。より良いアプローチは、特定のenv変数である場合にのみサービスを開始するために、これを逆にすることです。しかし、この方向に行く、あなたは例えば、あなたのアプリケーションサーバは、この変数を設定することを確認する必要があると思います:

アパッチ:SetEnv START_SERVICE 1

nginxの薄いenv START_SERVICE=1

START_SERVICE=1 thin start

+0

逆のアプローチは間違いなくこのプロジェクトに行く方法と思われます。助けてくれてありがとう! –

関連する問題