Laravel 5.3 db:seed 命令根本不起作用
Posted
技术标签:
【中文标题】Laravel 5.3 db:seed 命令根本不起作用【英文标题】:Laravel 5.3 db:seed command simply doesn't work 【发布时间】:2017-01-24 02:49:24 【问题描述】:我做任何事都按部就班:
安装了新的 Laravel 5.3.9 应用(我所有的非新应用都会产生相同的错误)
运行php artisan make:auth
为新表创建迁移 `php artisan make:migration create_quotations_table --create=quotations
Schema::create('quotations', function (Blueprint $table)
$table->increments('id');
$table->string('text');
// my problem persists even with the below two columns commented out
$table->integer('creator_id')->unsigned()->index('creator_id');
$table->integer('updater_id')->unsigned()->index('updater_id');
$table->softDeletes();
$table->timestamps();
);
然后我运行php artisan migrate
然后我定义一个新的种子php artisan make:seeder QuotationsTableSeeder
文件的完整内容,在我添加一个简单的插入之后:
<?php
use Illuminate\Database\Seeder;
class QuotationsTableSeeder extends Seeder
/**
* Run the database seeds.
*
* @return void
*/
public function run()
DB::table('quotations')->insert([
'text' => str_random(10),
]);
-
然后我运行
php artisan db:seed
问题
它根本不起作用。没有反馈,日志文件中没有错误。 探针在我的本地环境中都存在(Win7,最新的 WAMP 服务器) 和我的由 Ubuntu 16.04 驱动的 Digital Ocean VPS。 我在几个单独的应用程序中采取了上述所有步骤 - 没有结果。也在 Laragon 2.0.5 服务器下。
我尝试过的
php artisan optimize
as suggested here.
composer dump-autoload
我php artisan clear-compiled
也没有带来任何结果
我也尝试按照官方文档示例进行播种 - 失败了。
我在种子文件中添加了use DB;
- 仍然没有结果。
要做的事情
帮助!!!为什么它们不起作用?
【问题讨论】:
在我的情况下,当模块在子文件夹中并且想要直接运行而不运行其他播种器 php artisan db:seed --class=WM\Common\Seeder\SmsStatusSeeder 【参考方案1】:您是否在DatabaseSeeder
类中调用您的播种机?这样:
database/seeds/DatabaseSeeder.php
class DatabaseSeeder extends Seeder
/**
* Run the database seeds.
*
* @return void
*/
public function run()
$this->call(QuotationTableSeeder::class);
或者,在使用php artisan db:seed
命令时添加--class
选项,这样:
php artisan db:seed --class="QuotationTableSeeder"
创建或删除播种器后,不要忘记运行以下命令:
composer dump-autoload
【讨论】:
对我来说它只适用于--class
选项,即使我将它添加到公共运行功能。任何想法为什么?
很高兴你回答了这个问题,这是文档第一次让我误入歧途。
很高兴能帮到你。
您必须在此之后将您创建的 Seeder 添加到 DatabaseSeeder $this->call(QuotationTableSeeder::class);
,您可以调用 php artisan db:seed
是7.x,官方文档中没有。【参考方案2】:
注意: 请谨慎使用 DEV ENVIRONMENT 和/或 DISPOSABLE DATABASES ONLY
如果其他人同时遇到迁移和播种问题,请尝试
php artisan migrate:fresh --seed
为我工作..
【讨论】:
我不会推荐这个,因为这个命令会:drop all tables from the database and then execute the migrate command
。这对某些人来说可能是灾难性的!以上是关于Laravel 5.3 db:seed 命令根本不起作用的主要内容,如果未能解决你的问题,请参考以下文章
拉拉维尔 5.4。调用错误:php artisan db:seed
Laravel php artisan db:seed 导致“use”语句错误