如何在Laravel包中自动运行迁移?

bor*_*ast 6 laravel laravel-4

我刚刚在Laravel 4应用程序中安装了Cartalyst的Sentry 2,但我发现我必须通过指定单独运行该程序包的迁移--package=cartalyst/sentry,这使得自动部署无法进行.

有没有办法运行php artisan migrate并让它运行Sentry的迁移?

小智 5

Laravel 5 之后有更好的方法来解决这个问题:

在包的 /database/migrations 文件夹中创建迁移。之后,在包的服务提供者中创建一个引导方法,引用migrations文件夹

public function boot()
{
    $this->loadMigrationsFrom(__DIR__ . 
    '/database/migrations');
}
Run Code Online (Sandbox Code Playgroud)

现在,在顶级文件夹(需要此包的主应用程序)上,您可以运行默认的迁移命令( php artisan migrate ),它将通过 loadMigrationsFrom 方法自动查找包迁移

答案复制自: http: //voerro.com/en/tutorials/r/developing-and-distributing-laravel-5-packages/3


小智 4

在这种情况下,我通常会通过以下命令发布包迁移:

php artisan migrate:publish vendor/package
Run Code Online (Sandbox Code Playgroud)

这会将迁移文件从任何给定的包复制到您的迁移文件夹。