LARAVEL-MIGRACIONES
|
Crear una base de
datos |
|
|
php artisan migrate |
ejecutamos la
migracion --corremos la migracion |
|
php artisan
make:migration cursos php artisan
make:migration create_curso_table |
creamos una
migracion |
|
php artisan
migrate:rollback |
Revertir los
cambios de la ultima migracion a nivel de bloque |
|
php artisan
migrate:fresh |
elimina todas las
tablas y despues ejecuta el medto up |
|
php artisan
migrate:fresh |
ejecuta el metodo
dow y despues el up |
|
php artisan migrate
add_avatar_to_nombredelatabla_table php artisan
make:migration add_avatar_to_nombredelatabla_table php artisan list |
agregar un campo
modificar una tabla $table->string(‘avatar’)->nullable(); $table->string(‘avatar’)->nullable()->after(‘email’)
; |
Para crear una migración, usa el comando Artisan
creando migracion, modelo y el conrolador con :::
php artisan make:model Receta -mcr
para ejecutar la migracion creada lo hacemos con el comando::
php artisan migrate
migrate:refresh
Vuelve atrás el sistema de migraciones y las vuelve a ejecutar todas.
migrate:rollback
Vuelve hacia atrás la última migración realizada. Una migración puede incluir varias tablas que fueron migradas de una sola vez en el paso anterior.
migrate:status
Te informa de las migraciones presentes en el sistema y si están ejecutadas o no.Puedes probar estos comandos con total garantía que no vas a romper nada, ejecutando las migraciones y volviendo hacia atrás, consultando el "status" en cada paso. Eso te ayudará a entender mejor las mecánicas de las migraciones y a empezar a apreciar la potencia que hay detrás de este sistema.
Como código para definir la tabla, ayudados por el objeto $table, de la clase Blueprint, realizaremos la declaración de cada uno de los campos, usando métodos como estos:
increments() genera un campo auto-increment.
string() genera un campo de tipo cadena (VARCHAR).
text() genera un campo largo de cadena (TEXT).
integer() genera un campo de tipo entero.
boolean() genera un campo boleano.
timestamp() genera un campo timestamp.
…
Modificadores de columna
Schema::table('users', function ($table) {
$table->string('email')->nullable();
});
modificador Descripción
->first():: Coloque la columna "primero" en la tabla (solo MySQL)
->after('column') Coloque la columna "después" de otra columna (solo MySQL)
->nullable() Permitir que se inserten valores NULL en la columna
->default($value) Especifique un valor "predeterminado" para la columna
->unsigned() Establecer integercolumnas paraUNSIGNED
También podemos generar una nueva migración desde la consola con el comando php artisan make:migration seguido del nombre de la migración, por ejemplo:
#
php artisan make:migration create_notes_table
En Laravel, se dice que las migraciones son un control de versiones de nuestra base de datos, pero en realidad son más que eso. Este nos permite crear tablas, establecer relaciones, modificarlas y por supuesto eliminarlas, y todo esto mediante la consola de comandos.
Veamos un ejempo básico de introducción, para esto obviamente debemos tener descargado el framework previamente y corriendo en nuestro servidor local o de pruebas.
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
}
Aquí se llama al método create dentro del «Facade» Schema. Recuerda que los Facades en Laravel nos permiten interactuar con componentes
registrados en el framework a través de una interfaz estática;
pero realmente no hay un método create dentro de esta clase Schema.
Este método create acepta 2 argumentos, el primero es el nombre de la tabla que será creada,
el segundo es una función anónima o Closure:
Esta función anónima va a recibir un objeto de la clase Illuminate\Database\Schema\Blueprint y es este último objeto el que contiene los métodos para definir los campos de la tabla, por ejemplo: $table->bigIncrements('id'); define una columna de tipo BIGINT UNSIGNED, es decir, entero grande sin números negativos. $table->timestamps(); define 2 columnas de tipo TIMESTAMP con los nombres created_at y updated_at, estas columnas son usadas por Eloquent, el ORM de Laravel que veremos más adelante. Vamos a agregar 2 columnas más en el medio: $table->string('title'); define una columna de tipo VARCHAR con el nombre title $table->mediumText('content'); define una columna de tipo MEDIUMTEXT con el nombre content
Método Up: corre las migraciones/cambios pendientes. Método Down: revierte la migración realizada por el método up. Podemos observar que Laravel nos ha creado una clase, con dos métodos para gestionar muestra tabla fácilmente.
Bibliografia::
https://laravel.com/docs/5.1/migrations#writing-migrations
Comentarios
Publicar un comentario