使用Artisan :: call()来运行包迁移

时间:2014-10-21 18:25:30

标签: php laravel laravel-4 database-migration

我需要为我正在编写的一些单元测试迁移我的数据库模式,其中一个迁移包含在一个包中。通常,从命令行,我将运行此命令:

php artisan migrate --package=tappleby/laravel-auth-token

要在代码中运行我自己的迁移:

Artisan::call('migrate');

但是,我似乎无法让Artisan从代码内部运行包迁移。我试过这个:

Artisan::call('migrate --package=tappleby/laravel-auth-token');

但这会导致未知的命令错误。我也试过这些:

Artisan::call('migrate', '--package=tappleby/laravel-auth-token');
Artisan::call('migrate', ['--package=tappleby/laravel-auth-token']);
Artisan::call('migrate', ['package=tappleby/laravel-auth-token']);

以上都不奏效。在我的代码中运行包迁移的正确方法是什么?

2 个答案:

答案 0 :(得分:5)

我认为正确的语法对命令参数使用关联数组,其中item键是参数的名称,item值是参数的值。这应该适合你的情况:

Artisan::call('migrate', ['--package' => 'tappleby/laravel-auth-token']);

答案 1 :(得分:0)

我用--path

做到了
Artisan::call('migrate', ['--path' => 'vendor/systeminc/laravel-admin/src/database/migrations']);