laravel 5 服务器上的迁移不是 运行?
Migrations not running on server in laravel 5?
所以我有一个自定义包,我在我的项目中使用它有很多迁移。该软件包包含大量迁移和种子。
在包的服务提供者中,我像这样加载迁移:
$this->loadMigrationsFrom(__DIR__ . '/database/migrations/');
当我在本地 运行 php artisan migrate:refresh
时,它就像一个魅力,迁移是 运行 并且表安装在数据库中。但是当我在我的服务器上做同样的事情时,它没有说要迁移这令人困惑,因为相同的配置适用于我的宅基地环境而不是我的生产环境。
有没有其他人遇到过类似的问题或知道如何解决这个问题?
如果您使用的是Git,请检查服务器上的分支是否与开发环境上的分支相同。
例如,您可能在服务器的 master
分支上(默认情况下),并且您在 development
分支中完成了所有开发。因此,迁移将仅在 development
分支中可见。
会不会是你们服务器的位置不一样,或者命令是从别的地方执行的? __DIR__
在最好的情况下也不太可靠。
尝试通过将行更改为以下内容来抽象您的代码:
$this->loadMigrationsFrom(base_path() . '/database/migrations/');
base_path()
和 app_path()
在处理 Laravel 代码中的特定文件位置时是很方便的函数 :)
编辑:哦,还有另一种可能性:您的迁移尚未添加到您的 git 存储库中。发生在我身上的次数比我愿意承认的要多 ;-)
也许应该是其中之一。
$this->loadMigrationsFrom(__DIR__ . '/../database/migrations/');
或
$this->loadMigrationsFrom(__DIR__ . '/./database/migrations/');
所以我有一个自定义包,我在我的项目中使用它有很多迁移。该软件包包含大量迁移和种子。
在包的服务提供者中,我像这样加载迁移:
$this->loadMigrationsFrom(__DIR__ . '/database/migrations/');
当我在本地 运行 php artisan migrate:refresh
时,它就像一个魅力,迁移是 运行 并且表安装在数据库中。但是当我在我的服务器上做同样的事情时,它没有说要迁移这令人困惑,因为相同的配置适用于我的宅基地环境而不是我的生产环境。
有没有其他人遇到过类似的问题或知道如何解决这个问题?
如果您使用的是Git,请检查服务器上的分支是否与开发环境上的分支相同。
例如,您可能在服务器的 master
分支上(默认情况下),并且您在 development
分支中完成了所有开发。因此,迁移将仅在 development
分支中可见。
会不会是你们服务器的位置不一样,或者命令是从别的地方执行的? __DIR__
在最好的情况下也不太可靠。
尝试通过将行更改为以下内容来抽象您的代码:
$this->loadMigrationsFrom(base_path() . '/database/migrations/');
base_path()
和 app_path()
在处理 Laravel 代码中的特定文件位置时是很方便的函数 :)
编辑:哦,还有另一种可能性:您的迁移尚未添加到您的 git 存储库中。发生在我身上的次数比我愿意承认的要多 ;-)
也许应该是其中之一。
$this->loadMigrationsFrom(__DIR__ . '/../database/migrations/');
或
$this->loadMigrationsFrom(__DIR__ . '/./database/migrations/');