Mostrando entradas con la etiqueta Migraciones. Mostrar todas las entradas
Mostrando entradas con la etiqueta Migraciones. Mostrar todas las entradas

Migraciones: Ejemplo creación tablas relacionadas con claves foraneas

php artisan make:migration crear_tabla_permisos --create=permisos
Schema::create('permisos', function (Blueprint $table) {
   $table->id();
   $table->string('nombre', 50);
   $table->string('slug',50);
   $table->timestamps();
});

php artisan make:migration crear_tabla_roles --create=roles
Schema::create('roles', function (Blueprint $table) {
   $table->id();
   $table->string('nombre', 50);
   $table->string('slug',50);
   $table->timestamps();
});

php artisan make:migration crear_tabla_permisos_roles --create=permisos_roles
Schema::create('permisos_roles', function (Blueprint $table) {
   $table->unsignedBigInteger('permisos_id');
   $table->foreign('permisos_id','fk_permisorol_permiso')->references('id')->on('permisos')
     ->onDelete('cascade')
     ->onUpdate('restrict');
   $table->unsignedBigInteger('roles_id');
   $table->foreign('roles_id','fk_permisorol_rol')->references('id')->on('roles')
     ->onDelete('cascade')
     ->onUpdate('restrict');
   $table->timestamps();
});

Migraciones

php artisan make:migration create_usuarios_table

o se puede hacer tb (y es mucho más aconsejable):
php artisan make:migration crear_usuarios_tabla --create=usuarios // para q te cree los metodos up y down

php artisan migrate
// rollback: deshace la última migración y elimina las tablas nuevas q se hayan creado en esa migración
php artisan migrate:rollback
// reset: deshace todas las migraciones (un rollback de todas)
php artisan migrate:reset
// refresh: borra todas las migraciones hechas y vuelve a ejecutarlas todas otra vez, con ello se pierden los datos no la estructura
php artisan migrate:refresh
// status: te indica si hay alguna migración q todavía no se haya ejecutado:
php artisan migrate:status
Por ejemplo si queremos modificar un campo por ejemplo de integer a decimal sería: ...
$table->decimal("precio");
...
una vez guardado el cambio hacer:
php artisan migrate:rollback
php artisan migrate

Seeders y migraciones

php artisan make:seeder ProfessionSeeder

Editamos el seeder:
public function run() {
     $idProf = Profession::where('title', 'Profesión Dos')->value('id');
     User::create([
            'name' => 'uno',
            'email' => 'uno2@gmail.com',
            'password' => bcrypt('1234'),
            'profession_id' => $idProf
     ]);
}

Migraciones y ejecutar los Seed:
php artisan migrate:fresh --seed

Tb se puede hacer en dos líneas:
php artisan migrate
php artisan db:seed

Para ejecutar el seeder de solo uno específico:
php artisan db:seed --class=UsersTableSeeder

Error al migrar de email no es único:
En app\Providers\AppServiceProvider.php:
public function boot() {
   Schema::defaultStringLength(191);
}