2013-08-25 4 views
6

に--pathとロールバック、私はartisan:migrateapp/database/migrations(元の内側のフォルダからの移行を生成することはできませんので、私はLaravel 4Laravel 4移行:職人のCLI

にいくつかのバリケードを抱えている:アプリ/データベース/移行/ APP1)

私は私のカスタムコマンドapp:migrate

/* default path */ 
$this->call('migrate'); 

/* custom path */ 
$this->call('migrate', array('--path' => 'app/database/migrations/app1')); 

上でこれを持っているが、私はまた、すべてのMIGをロールバックしますapp:refreshコマンドをしたいですそして、デフォルトパスからの配給を行います。次に、migrate:refresh --seedのようなものを移行してシードします

どのようにこれを逆にしますか?呼び出し:

$this->call('migrate:rollback', array('--path' => 'app/database/migrations/app1')); 

[InvalidArgumentException] 
The "--path" option does not exist. 

誰かが助けてくださいすることができますというエラーが生成されます。

ありがとうございました!

+0

まあ、ATM、実際に方法はありません。そうするための最も簡単な方法は、あなたがcomposer.jsonautoload.classmapにそれらを維持しているフォルダのパスを追加することです。実際のファイル名のみがデータベースに格納され、そのパスはなく、ロールバック・コマンドのパス・パラメーターはありません。もちろん、パラメータを実装することはできますが、複数のパスから移行を実行した場合には悪いことになります。最高のものはおそらくDBに格納する方法を見つけるだろう。どこから来たのか、レポをフォークして変更を提案するだろう。 – rmobis

+0

気にしないでください。 – rmobis

答えて

5

あなたがしなければならないことは、あなたのマイグレーションクラスがオートロードできることを確認することだけです。

... 
"autoload": { 
    "classmap": [ 
     ... 
     "app/database/migrations/app1", 
    ] 
}, 
+0

cool。これは動作します!ありがとう! – reikyoushin

-2

この場合、手動で "--path"オプションを指定してmigrateを再実行する必要があります。

+0

これは、古いテーブルを削除し、再度挿入して再シードしますか? – reikyoushin

+0

私はチェックしました。はい、再度シードする前にDBから古いデータを削除しません。 – reikyoushin

関連する問題