Usuario:ManuelRomero/Laravel/migraciones

Migraciones

 * Es una forma de crear fácilmente una base de datos para trabajar con laravel.
 * Migración es un término que alude al hecho de que vamos a pasar o migrar la base de datos de un fichero php a la base de datos de un servidor.
 * Primero hemos de configurar la base de datos con la que queremos trabajar.
 * Hay que tener en cuenta que este sistema es como crear las tablas/campos con phpmyadmin u otro gestor
 * Tiene una serie de ventajas, una vez que has creado las migraciones, otros las pueden ejecutar para tener exactamente tu estructura de bases de datos, y también puedes tener un control de versiones sobre tu base de datos

php artisan make:migration usuarios php artisan make:migration usuarios --table=usuarios o php artisan make:migration usuarios --create=usuarios
 * Para crear una migración especificamos el nombre
 * Podemos especificar el nombre de la tabla con --table o --create

php artisan migrate:install
 * Para elecutar una migración
 * Con esto tendríamos creada un migración.
 * Ahora si vamos al phpmyadmin observamos que tenemos creada la tabla migrations con dos campos
 * Ahora tendremos que indicar la/s tabla/s que queremos crear
 * Para añadir los campos de la tabla tendremos que ir a la carpeta database/migrations/FECHA_CREACION_usuarios.php y lo abrimos
 * En el vemos que tenemos dos métodos uno up y otro down
 * Ahora tendríamos que ir a la clase tabla_producto y en el método up e indicar la estructura de tabla a crear.

Modificando la migración

 * Podemos volver a alterar la estructura de la base de datos y volver a ejectuar la migración.


 * Vemos como se crean los campos. Los tipos string, laravel los convierte a Varchar2.
 * id es de tipo autoincremento
 * timestamps, básicamente lo que hace ese método es crear dos campos llamados created_at y otro updated_at.
 * Estos campos son de tipo TIMESTAMP. Nos informarán de cuando fue creado o modificado cada uno de los registros de nuestra tabla.

Tipos de datos

 * A la hora de crear las tablas tenemos disponibles los tipos de datos que hay en sql
 * Podemos verlos en la página de Laravel https://laravel.com/docs/5.6/migrations#migration-structure

La clase Schema (facade)
https://laravel.com/docs/5.6/migrations#creating-tables
 * Esta clase proporcina métodos para toda el LDD del gestor de bases de datos


 * Crear las tablas con campos especificados (método create)
 * Para ver los métodos para especificar los tipos campos de la base de datos consultar a la web de referencia.
 * Borrar la tabla, método drop
 * Cambiar el nombre de una tabla, método rename


 * Cambiar el nombre de un campo de una tabla, método rename




 * Añadir un campo en la tabla método table
 * Añadir restricciones
 * 1.- clave primaria


 * 1.- clave candidata o valor único


 * 1.- índice

=

Poblando una base de datos desde migration
php artisan make:seeder PoblarAlumnos
 * Laravel provee una sencilla manera de poblar una base de datos
 * Esta acción se conoce como seeding
 * En una forma de gestionar todo desde el framework, no obstante igualmente se puede hacer directamente desde el phpmyadmin.
 * Vamos a utilizarlo
 * Primero vamos a la carpeta app/database/seedsy creamos un fichero PoblarUsuariosSeeder.php
 * Tambien lo podemos hacer con artisan

php artisan db:seed php artisan migrate:refresh --seed https://github.com/fzaninotto/Faker https://packagist.org/packages/fzaninotto/faker
 * Esta clase debe de extender de Seeder
 * Ahora nos queda ejecutarla; Para ello vamos a modificar la clase DataBaseSeeders.php que tenemos en /app/database/seeds.
 * Ahí lo que hacemos es añadir una linea para que se llame a la clase que previamente hemos creado
 * Quedándonos el código de la clase
 * Ahora sólo nos queda ejecutar esta acción, esto lo haremos en la línea de comandos de artisan
 * Esta acción también la podemos hacer al ejecutar la migración
 * Vamos a probar un componente que nos va a permitir realizar una población masiva de datos
 * Para instalar escribmos en el composer.json