在Web应用程序中运行种子

问题描述

我想从服务器上的Web应用程序运行数据库种子。

我已经创建了命令,我已经

$resp = Artisan::call('migrate',['--path' => 'database/migrations/create_database/']);
DB::statement('SET FOREIGN_KEY_CHECKS=0;');
Artisan::call('db:seed');
DB::statement('SET FOREIGN_KEY_CHECKS=1;');

我通过函数中的命令Artisan::call('myCommand:run');启动它。 在本地可以正常工作,迁移和种子成功完成。

当我想在服务器上运行它并通过端点启动它时,仅运行迁移。 我的日志文件中有该错误

[2020-08-27 10:35:18] local.ERROR: Class AclPermissionTableSeeder does not exist {"exception":"[object] (ReflectionException(code: -1): Class AclPermissionTableSeeder does not exist at /devs/dev.rps.zoneit.pl/vendor/laravel/framework/src/Illuminate/Container/Container.PHP:779)
[stacktrace]
#0 /devs/dev.domain.io/vendor/laravel/framework/src/Illuminate/Container/Container.PHP(779): ReflectionClass->__construct('AclPermissionTa...')

这是第一种子。

这是在应用程序中正确运行的种子,还是在Web应用程序中无法运行数据库的种子?

解决方法

在运行Artisan::call('db:seed');

之前

u需要运行composer dump-autoload,以便将所有种子类加载到laravel应用程序中