When I'm trying to execute php artisan migrate:fresh --seed
command I'm getting errors. I don't understand what they are all about and I don't know what could cause them. The description of the problem is below.
Factory file PostFactory.php:
<?php
namespace Database\Factories;
use App\Models\Post;
use Illuminate\Database\Eloquent\Factories\Factory;
class PostFactory extends Factory
{
/**
* The name of the factory's corresponding model.
*
* @var string
*/
protected $model = Post::class;
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
$title = $faker->realText(rand(10, 40));
$short_title = \Illuminate\Support\Str::length($title) > 30 ? mb_substr($title, 0, 30) . "..." : $title;
$created = $faker->dateTimeBetween("-30days", "-1days");
return [
"title" => $title,
"short_title" => $short_title,
"author_id" => rand(1, 4),
"descr" => $faker->realText(100, 500),
"created_at" => $created,
"updated_at" => $created
];
}
}
DatabaseSeeder.php:
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
\App\Models\User::factory()->count(4)->create();
\App\Models\Post::factory()->count(15)->create();
}
}
When I execute php artisan migrate:fresh --seed I'm getting those errors:
Illuminate\Database\QueryException
SQLSTATE[HY000] [2002] , .. .
(SQL: SHOW FULL TABLES WHERE table_type = 'BASE TABLE')
at C:\xampp\htdocs\laralove\vendor\laravel\framework\src\Illuminate\Database\Connection.php:692
688▕ // If an exception occurs when attempting to run a query, we'll format the error
689▕ // message to include the bindings with SQL, which will make this exception a
690▕ // lot more helpful to the developer instead of just the database's errors.
Illuminate\Database\QueryException
SQLSTATE[HY000] [2002] , .. .
(SQL: SHOW FULL TABLES WHERE table_type = 'BASE TABLE')
at C:\xampp\htdocs\laralove\vendor\laravel\framework\src\Illuminate\Database\Connection.php:692
688▕ // If an exception occurs when attempting to run a query, we'll format the error
689▕ // message to include the bindings with SQL, which will make this exception a
690▕ // lot more helpful to the developer instead of just the database's errors.
691▕ catch (Exception $e) {
➜ 692▕ throw new QueryException(
693▕ $query, $this->prepareBindings($bindings), $e
694▕ );
695▕ }
696▕
1 C:\xampp\htdocs\laralove\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:70
PDOException::("SQLSTATE[HY000] [2002] , .. .
")
2 C:\xampp\htdocs\laralove\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:70
PDO::__construct("mysql:host=localhost;port=3306;dbname=laralove", "root", "", [])
I've checked the lines in the files provided in the error description but I've no clue what can be causing the errors.
Any help would be very appriciated
UPD 0:
I've tried to change 'localhost' to '127.0.0.1' in config files as @Rwd suggested. And previous errors are gone. But now I'm getting other errors:
ErrorException
Undefined variable: faker
at C:\xampp\htdocs\laralove\database\factories\PostFactory.php:24
20▕ * @return array
21▕ */
22▕ public function definition()
23▕ {
➜ 24▕ $title = $faker->realText(rand(10, 40));
25▕ $short_title = \Illuminate\Support\Str::length($title) > 30 ? mb_substr($title, 0, 30) . "..." : $title;
26▕ $created = $faker->dateTimeBetween("-30days", "-1days");
27▕
28▕ return [
1 C:\xampp\htdocs\laralove\database\factories\PostFactory.php:24
Illuminate\Foundation\Bootstrap\HandleExceptions::handleError("Undefined variable: faker", "C:\xampp\htdocs\laralove\database\factories\PostFactory.php", [])
2 C:\xampp\htdocs\laralove\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Factories\Factory.php:385
Database\Factories\PostFactory::definition()
UPD 1:
Replaced $faker
with $this->faker
as @Cristea suggested and now getting those previous errors:
1 C:\xampp\htdocs\laralove\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:70
PDOException::("SQLSTATE[HY000] [2002] , .. .
")
2 C:\xampp\htdocs\laralove\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:70
PDO::__construct("mysql:host=localhost;port=3306;dbname=laralove", "root", "", [])
localhost is still changed to 127.0.0.1 in .env and database.php as @Rwd suggested
source https://stackoverflow.com/questions/68107187/getting-errors-when-trying-to-seed-tables-in-laravel
Comments
Post a Comment