2013-01-22 8 views
6

レールエンジンを開発しているプロジェクトに参加しました。テスト用のダミーアプリもあります。レールエンジン+ダミーアプリケーションのマイグレーションの管理方法

foo/ 
foo/spec/dummy/ 

Iダミーアプリからrake db:migrate、すべてが順調であれば

foo/db/migrate/ 
foo/spec/dummy/db/migrate/ 

で同じ移行があります。エンジン(current directory = foo)から同じことを行うと、同じ名前の複数の移行に関するエラーが発生します。

Q1)Rakefilesはボークですか? (db:migrateはダミーアプリに再帰する必要がありますか?)

Q2)移行は1つのディレクトリにのみ行う必要がありますか?もしそうなら、どちらですか?

私たちはRails 3.2.9、ruby 1.9.3p194を使用しています。

答えて

7

質問1
Rakefileには、spec/dummyアプリケーションを考慮したエントリが必要です。例えば、

Bundler::GemHelper.install_tasks 
APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__) 
load 'rails/tasks/engine.rake' 

は、ここでより詳細な例をrakefileだ、https://github.com/twinge/questionnaire_engine/blob/engine2/Rakefile

質問2
IMO、マイグレーションが唯一のフォルダを移行/ fooの/ DB上に存在し、そしてないすべきFOO/spec/dummy/db/migrateを実行します。実際には、ダミーのdb/migrateやdb/schemaをバージョン管理していません。

なぜですか?私はダミーのアプリを使用して、私のエンジンのインストールで100%稼動することを確認してください。したがって、私がfoo/spec/dummy db状態をバージョン管理していた場合、前回のインストールがあるかのようにテストされます。

例エンジン
https://github.com/twinge/questionnaire_engine/tree/engine2

関連する問題