Browse Source

unique fields in migrations, seeds

Carello Qwerty 6 years ago
parent
commit
e08e8d5585

+ 2 - 1
README.md

@@ -29,7 +29,8 @@ $ mysql -uroot -psecret<br/>
 $ php artisan config:cache<br/>
 
 Тепрь когда есть подключение к базе, запускаем миграции<br/>
-$ php artisan migrate<br/>
+$ php artisan migrate --seed<br/>
+Флаг --seed запускает миграции, которые находятся в database/seeds
 
 Для работы с git создаем каждый ветку со своей фамилией:<br/>
 $ git checkout -b фамилия<br/>

+ 26 - 0
database/factories/LocationFactory.php

@@ -0,0 +1,26 @@
+<?php
+
+use Carbon\Carbon;
+use App\Location;
+use Faker\Generator as Faker;
+
+$factory->define(Location::class, function (Faker $faker) {
+
+    $lat = 36.16310;
+    $lng = 49.94950;
+    $latArray = [];
+    $lngArray = [];
+    for ($i=0; $i<10; $i++){
+        $latArray[] = $lat;
+        $lat += 0.13733;
+        $lngArray[] = $lng;
+        $lng += 0.00715;
+    }
+
+    return [
+        'lat' => array_random($latArray),
+        'lng' => array_random($lngArray),
+        'created_at' => Carbon::now()->subDays(rand(1, 10)),
+        'user_id' => null,//
+    ];
+});

+ 10 - 0
database/factories/RoleFactory.php

@@ -0,0 +1,10 @@
+<?php
+
+use App\Role;
+use Faker\Generator as Faker;
+
+$factory->define(Role::class, function (Faker $faker) {
+    return [
+        'name' => 'user'//
+    ];
+});

+ 1 - 0
database/factories/UserFactory.php

@@ -18,6 +18,7 @@ $factory->define(App\User::class, function (Faker $faker) {
     return [
         'name' => $faker->name,
         'email' => $faker->unique()->safeEmail,
+        'role_id' => null,
         'email_verified_at' => now(),
         'password' => '$2y$10$TKh8H1.PfQx37YgCzwiKb.KjNyWgaHb9cbcoQgdIVFlYg7B77UdFm', // secret
         'remember_token' => Str::random(10),

+ 2 - 2
database/migrations/2019_02_27_102228_create_locations_table.php

@@ -15,8 +15,8 @@ class CreateLocationsTable extends Migration
     {
         Schema::create('locations', function (Blueprint $table) {
             $table->increments('id');
-            $table->float('lat');
-            $table->float('lng');
+            $table->float('lat', 8, 5);
+            $table->float('lng', 8, 5);
             $table->unsignedInteger('user_id');
             $table->foreign('user_id')
                 ->references('id')

+ 1 - 1
database/migrations/2019_02_27_102258_create_groups_table.php

@@ -15,7 +15,7 @@ class CreateGroupsTable extends Migration
     {
         Schema::create('groups', function (Blueprint $table) {
             $table->increments('id');
-            $table->string('name');
+            $table->string('name')->unique();
             $table->timestamps();
         });
     }

+ 1 - 1
database/migrations/2019_02_27_102330_create_roles_table.php

@@ -15,7 +15,7 @@ class CreateRolesTable extends Migration
     {
         Schema::create('roles', function (Blueprint $table) {
             $table->increments('id');
-            $table->string('name');
+            $table->string('name')->unique();
             $table->timestamps();
         });
     }

+ 19 - 1
database/seeds/DatabaseSeeder.php

@@ -1,5 +1,9 @@
 <?php
 
+use Carbon\Carbon;
+use App\Location;
+use App\Role;
+use App\User;
 use Illuminate\Database\Seeder;
 
 class DatabaseSeeder extends Seeder
@@ -11,6 +15,20 @@ class DatabaseSeeder extends Seeder
      */
     public function run()
     {
-        // $this->call(UsersTableSeeder::class);
+
+
+        factory(Role::class, 1)->create([
+            'created_at' => Carbon::now()->subDays(10),
+        ])->each(function(Role $role) {
+            $role->users()->saveMany(
+                factory(User::class, 10)->create([
+                    'role_id' => $role->id,
+                    'created_at' => Carbon::now()->subDays(10)
+                ])->each(function (User $user) {
+                    $user->locations()->saveMany(
+                        factory(Location::class, random_int(20, 50))->make());
+                })
+            );
+        });
     }
 }