Está en la página 1de 7

Guía para la implementación de la base de batos con el nombre de ministerio en Mysql la cual

tendrá el siguiente esquema:

JUZGADOS
IDJUZGADO: INTEGER
JUZGADO: VARCHAR(60)
EXPEDIENTES
IDEXPEDIENTE: INTEGER
FECHA: DATE
SUMILLA: VARCHAR(60)
IDJUZGADO: INTEGER (FK)

Y los siguientes datos iniciales:

Juzgados: JUZGADO 1, JUZGADO 2, JUZGADO 3


Expedientes: 2/8/2020, ROBO Y EXTORSION, JUZGADO 2

METODO 1. SCRITPS

1. Elaboración del Script e inserción de datos

drop database if exists ministerio;


create database ministerio;
use ministerio;
create table juzgados(idjuzgado int auto_increment,juzgado varchar(60),primary
key(idjuzgado));
create table expedientes(idexpediente int auto_increment,fecha date,sumilla
varchar(60),idjuzgado int,primary key(idexpediente),foreign key(idjuzgado) references
juzgados(idjuzgado));
insert into juzgados(juzgado) values ('JUZGADO 1'), ('JUZGADO 2'),('JUZGADO 3');
insert expedientes values(null,now(),'SECUESTRO Y EXTORSION',2);

2. Ejecución del script y visualización de resultados


METODO 2. MIGRACIONES

1. Creación de la base de datos ministerio con phpmyadmin

2. Estableciendo la conexión en el proyecto de Laravel en el archivo .env

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=ministerio
DB_USERNAME=root
DB_PASSWORD=

3. Creación de los modelos, archivos de migración y sembradores (semillas)

php artisan make:model Juzgado –ms

- m: crea un archivo para la migración del modelo


- s: crea un archivo que contendrá la semilla del modelo (datos iniciales en la tabla Juzgado)

Juzgado.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Juzgado extends Model


{
use HasFactory;
protected $fillable=['juzgado'];
public $PrimaryKey='idjuzgado';
}
… create_juzgados_table.php
<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateJuzgadosTable extends Migration


{
public function up()
{
Schema::create('juzgados', function (Blueprint $table) {
$table->bigIncrements('idjuzgado');
$table->string('juzgado',60);
$table->timestamps();
});
}

public function down()


{
Schema::dropIfExists('juzgados');
}
}

JuzgadoSeeder.php
<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;
use App\Models\Juzgado;

class JuzgadoSeeder extends Seeder


{
public function run()
{
//
Juzgado::create(['juzgado' => 'Juzgado 1',]);
Juzgado::create(['juzgado' => 'Juzgado 2',]);
Juzgado::create(['juzgado' => 'Juzgado 3',]);

}
}
php artisan make:model Expediente –ms

Expediente.php
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Expediente extends Model


{
use HasFactory;
protected $fillable=['fecha','sumilla','idjuzgado'];
public $PrimaryKey='idexpediente';
}

… create_expedientes_table.php
<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateExpedientesTable extends Migration


{
public function up()
{
Schema::create('expedientes', function (Blueprint $table) {
$table->bigIncrements('idexpediente');
$table->date('fecha');
$table->string('sumilla',60);
$table->foreignId('idjuzgado')
->references('idjuzgado')
->on('juzgados');
$table->timestamps();
});
}

public function down()


{
Schema::dropIfExists('expedientes');
}
}
ExpedienteSeeder.php
<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;
use App\Models\Expediente;

class ExpedienteSeeder extends Seeder


{

public function run()


{
//
Expediente::create(['fecha' => now(),'sumilla' => 'SECUESTRO Y EXTORSION','idjuzgado' =>
'2',]);
}
}

Finalmente, en el método ejecución de DatabaseSeeder.php especificamos las semillas a


ejecutar

DatabaseSeeder.php
<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder


{

public function run()


{
// \App\Models\User::factory(10)->create();
$this->call(JuzgadoSeeder::class);
$this->call(ExpedienteSeeder::class);

}
}

4. Ejecutando la migración e implementando el esquema (sin datos)

php artisan migrate


5. Implementando el esquema y el poblado de datos

Podemos aplicar un solo comando para la reconstrucción del esquema y el poblado de datos a
la vez
php artisan migrate:fresh --seed

6. Validando el esquema del modelo con SQL Manager for MySQL

7. Recuperando datos

Podemos utilizar Tinker para recuperar datos de manera interactiva

PS D:\demo> php artisan tinker


Psy Shell v0.10.8 (PHP 8.0.7 — cli) by Justin Hileman
>>>

También podría gustarte