Hago todo al pie de la letra:
-
Instalé la nueva aplicación Laravel 5.3.9 (todas mis aplicaciones no nuevas producen el mismo error)
-
correr
php artisan make:auth
-
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(); });
-
entonces corro
php artisan migrate
-
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),
]);
}
}
- 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?
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 llamarphp 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
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
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