Laravel 5.3 db: el comando seed simplemente no funciona

3 minutos de lectura

Hago todo al pie de la letra:

  1. Instalé la nueva aplicación Laravel 5.3.9 (todas mis aplicaciones no nuevas producen el mismo error)

  2. correr php artisan make:auth

  3. crear migraciones para una nueva tabla `php artesanal 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();
    });
    
  4. entonces corro php artisan migrate

  5. Luego defino una nueva semilla. php artisan make:seeder QuotationsTableSeeder

El contenido completo del archivo, después de agregar una simple inserción:

<?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),

    ]);
}
}
  1. entonces corro php artisan db:seed

problema

simplemente no funciona. No se presentaron comentarios, no hubo errores en el archivo de registro. El problema persiste tanto en mi entorno local (Win7, el servidor WAMP más nuevo) como en mi Digital Ocean VPS con tecnología de Ubuntu 16.04. Todos los pasos anteriores los tomé en varias aplicaciones separadas, sin resultado. También bajo servidor Laragon 2.0.5.

lo que he probado

php artisan optimize como se sugiere aquí.

composer dump-autoload i php artisan clear-compiled tampoco han dado resultados

También traté de sembrar simplemente siguiendo el ejemplo de documentos oficiales – fallé.

yo añadí use DB; al archivo semilla – todavía no hay resultado.

que hacer

¡¡¡ayuda!!! ¿Cómo es que no funcionan?

  • en mi caso, cuando el módulo está en subcarpetas y quiero ejecutarlo directamente sin ejecutar otra sembradora php artesanal db:seed –class=WM\Common\Seeder\SmsStatusSeeder

    – saber tabatabaee yazdi

    12 oct 2020 a las 15:28

Avatar de usuario de Rafael Berro
rafael berro

¿Estás llamando a tu sembradora dentro del DatabaseSeeder ¿clase? De esta manera:

base de datos/semillas/DatabaseSeeder.php

class DatabaseSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        $this->call(QuotationTableSeeder::class);
    }
}

O bien, agregue el --class opción al usar el php artisan db:seed comando, de esta manera:

php artisan db:seed --class="QuotationTableSeeder"

Después de crear o eliminar sus seeders, no olvide ejecutar el siguiente comando:

composer dump-autoload

  • para mi solo funciona con el --class opción, incluso cuando lo agregué a la función de ejecución pública. ¿Alguna idea de por qué?

    – davejal

    24/01/2017 a las 18:35

  • Me alegro de que hayas respondido esto, es la primera vez que los médicos me desvían.

    – mdgrech

    25 de enero de 2018 a las 5:49

  • Me alegro de poder ayudarte.

    –Rafael Berro

    25 de enero de 2018 a las 19:24

  • Tienes que agregar el Seeder que creaste a DatabaseSeeder $this->call(QuotationTableSeeder::class); después de esto, puedes simplemente llamar php artisan db:seed

    – Luigi López

    27 de julio de 2018 a las 3:01


  • Es 7.x y esto no está en la documentación oficial.

    –Eray Erdin

    8 de marzo de 2020 a las 0:20

avatar de usuario de petermafia
petermafia

NÓTESE BIEN:
Úselo con precaución en ENTORNO DE DESARROLLO y/o BASES DE DATOS DESECHABLES ÚNICAMENTE

Si alguien más tiene problemas con la migración Y la inicialización al mismo tiempo, intente

php artisan migrate:fresh --seed

Trabajó para mi..

  • No recomendaré esto ya que este comando: drop all tables from the database and then execute the migrate command. ¡Esto puede ser catastrófico para algunos!

    – Neel

    11 de enero de 2020 a las 6:04

¿Ha sido útil esta solución?