Post Top Ad

Your Ad Spot

domingo, 19 de abril de 2020

Generando Migraciones

En el tema anterior, hemos adquirido el conocimiento de las migraciones que ya están disponibles en el proyecto laravel. Ahora, aprenderemos cómo generar nuestra propia migración.

Pasos para generar la migración

Los siguientes son los pasos para generar la migración:
  • Abra la ventana de Git bash y escriba el comando siguiente: '
    php artisan make: migración create_posts_table - -create = "posts"
Laravel Generando Migraciones
El resultado anterior muestra que la tabla de migración se ha creado con el nombre " create_posts_table ". El ' -create = "posts "' es la bandera que crea la tabla con el nombre " posts ". Seguimos la misma regla para nombrar la tabla de migración que laravel hizo con la tabla de migración predeterminada.
  • Para ver la tabla de migración, abra el directorio " C: \ xampp \ htdocs \ firstprojectproject \ database \ migrations ".
Laravel Generando Migraciones
El resultado anterior muestra que la tabla de migración con el nombre " create_posts_table " se ha creado correctamente.
  • Abra el archivo de migración, la estructura de este archivo se muestra a continuación:
  1. La clase  CreatePostsTable  extiende la  migración  
  2. {  
  3.     / ** 
  4.      * Ejecuta las migraciones. 
  5.      * * 
  6.      * @return void 
  7.      * /  
  8.      función pública up ()  
  9.     {  
  10.             Schema :: create ( 'posts' , function (Blueprint $ table) {  
  11.             $ tabla-> bigIncrements ( 'id' );  
  12.             $ tabla-> marcas de tiempo ();  
  13.         });  
  14.     }  
  15.   
  16.     / ** 
  17.      * Revertir las migraciones. 
  18.      * * 
  19.      * @return void 
  20.      * /  
  21.      función pública abajo ()  
  22.     {  
  23.         Schema :: dropIfExists ( 'publicaciones' );  
  24.     }  
  25. }  
El código anterior es la clase recién generada que contiene los dos métodos, es decir, el método up () y el método down () . El método up () implementa el método create () que contiene dos parámetros, es decir, el nombre de la tabla (posts) y la función de cierre. La función de cierre contiene la clase Blueprint con su objeto $ table como parámetro. Las dos columnas son creadas por Laravel; la primera es la columna de incremento automático con un nombre 'id', y la segunda columna es de tipo marca de tiempo.
Supongamos que agregué dos columnas más que se muestran en el siguiente código:
  1.  función pública up ()  
  2.     {  
  3.         Schema :: create ( 'posts' , function (Blueprint $ table) {  
  4.             $ tabla-> bigIncrements ( 'id' );  
  5.             $ tabla-> cadena ( 'título' ) -> único ();  
  6.             $ tabla-> texto ( 'cuerpo' );  
  7.             $ tabla-> marcas de tiempo ();  
  8.         }); }     
Ahora haremos la migración para ejecutar el código anterior. Abra la ventana de Git bash para ejecutar el comando migrar.
Laravel Generando Migraciones
El comando anterior crea la tabla de migración en una base de datos.
Abra phpmyadmin para ver la tabla de migración.
Laravel Generando Migraciones
El resultado anterior muestra que se crea la migración, y también la tabla de publicaciones '.
La estructura de la tabla de publicaciones ' se muestra a continuación:
Laravel Generando Migraciones
Agregar columnas a la tabla existente mediante la migración
Quiero agregar nuevas columnas en una tabla que ya está creada. No quiero volver a ese archivo que ha creado la tabla, soltar la tabla y luego volver a crearla y volver a migrarla. Por lo tanto, crearé un nuevo archivo de migración que agrega las nuevas columnas a una tabla existente.
Los siguientes son los pasos para agregar las columnas a una tabla existente:
  • Abra la ventana Git bash e ingrese el comando que se muestra a continuación:
    php artisan make: Migration add_column_admin_is_to_table -table = "posts" donde add_column_admin_is_to_table es el nombre del archivo de migración y -table = "posts" es la bandera que le dice a la lavel que estamos trabajando con la tabla de publicaciones.
Laravel Generando Migraciones
  • El archivo de migración se crea en el directorio xampp / htdocs / firstproject / database / migrations, donde firstproject es el nombre del proyecto laravel.
Laravel Generando Migraciones
  • Abra el archivo de migración y la estructura del archivo de migración recién creado se muestra a continuación:
  1. <? php  
  2. use  Illuminate \ Support \ Facades \ Schema;  
  3. use  Illuminate \ Database \ Schema \ Blueprint;  
  4. use  Illuminate \ Database \ Migrations \ Migration;  
  5. La clase  AddColumnAdminIsToTable  extiende la  migración  
  6. {  
  7.     / ** 
  8.      * Ejecuta las migraciones. 
  9.      * * 
  10.      * @return void 
  11.      * /  
  12.     función pública  up ()   
  13.     {  
  14.         Schema :: table ( 'posts' ,  function  (Blueprint  $ table ) {  
  15.             //  
  16.         });  
  17.     }  
  18.   
  19.     / ** 
  20.      * Revertir las migraciones. 
  21.      * * 
  22.      * @return void 
  23.      * /  
  24.     función pública  abajo ()   
  25.     {  
  26.         Schema :: table ( 'posts' ,  function  (Blueprint  $ table ) {  
  27.             //  
  28.         });  
  29.     }  
  30. }  
  • Agregamos el siguiente código en el método up () :
  1.  función pública up ()  
  2.   {  
  3.       Schema :: table ( 'posts' , function (Blueprint $ table) {  
  4.           $ tabla-> entero ( 'is_admin' ) -> unsigned ();  
  5.       });  
  6.   }  
El código anterior muestra que estamos agregando una nueva columna, es decir, is_admin a la tabla de publicaciones.
  • Ingrese el comando migrate en una ventana de Git bash, es decir, php artisan migrate .
Laravel Generando Migraciones
  • Abra phpMyAdmin para ver la estructura de la tabla posts '.
Laravel Generando Migraciones
En el resultado anterior, observamos que se crea la nueva columna, es decir, is_admin , y que el tipo del entero no está firmado. El entero sin signo significa que esta columna no contiene ningún número negativo.
  • Si queremos aplicar algunas modificaciones a esta columna, primero, debemos revertir la migración. El comando es php artisan migrate: rollback .
Laravel Generando Migraciones
  • Cuando revertimos la migración, la estructura de la estructura de 'publicaciones' se vería así:
Laravel Generando Migraciones
El resultado anterior muestra que la columna is_admin se ha eliminado de la tabla.
  • Supongamos que quiero proporcionar el valor predeterminado a la columna is_admin , luego se puede hacer de la siguiente manera:
  1. función pública  up ()   
  2.     {  
  3.         Schema :: table ( 'posts' ,  function  (Blueprint  $ table ) {  
  4.             $ tabla -> entero ( 'is_admin' ) -> predeterminado '0' );  
  5.         });  
  6.     }  
  • Para agregar nuevamente la columna is_admin a la tabla de publicaciones con un valor predeterminado 0, ejecute el comando migrate .
Laravel Generando Migraciones
  • Abre el phpMyAdmin .
Laravel Generando Migraciones
El resultado anterior muestra que la columna is_admin se agrega a la tabla de publicaciones con un valor predeterminado 0.

No hay comentarios.:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

outbrain

Páginas