Si tienen versiones anteriores de MySQL v5.7.7 y les sale este error:
En este link muestran como solucionarlo:
https://www.youtube.com/watch?v=aBbIkVPwo-Y
Introducción
Intro y caracteristicas de Laravel
Fundamentos
Instalación de Laravel
Primer ruta en laravel
Cómo funciona Blade
Controladores en Laravel
Request
Configuración de laravel
Bases de Datos
Cómo funcionan las Migraciones de DB
Migraciones en Artisan
Modelos con Eloquent
Trabajando con un Modelo
Operaciones CRUD
Controladores y recursos
Blade layout
Form para agregar reportes
CSRF
Fake PUT/PATCH
Borrando reportes
Validaciones
Relaciones en bases de datos
Creamos la vista de reportes
Relaciones con eloquent
Trabajando con relaciones
Emails
Acción para enviar un mail
Enviando emails
Autenticación
Login
Cierre
Cierre
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Laravel ofrece un sistema de migraciones de bases de datos las cuales pueden ser vistas como una especie de control de código pero para bases de datos. Esto es muy útil para equipos de trabajo al poder tener los cambios en el repositorio y de esta manera cada miembro del equipo podrá ejecutar las migraciones para tener los esquemas adecuados.
Puedes encontrar las migraciones en la carpeta database/migrations. Laravel nos ofrece dos migraciones de inicio que son para crear tablas de usuarios y para crear una tabla de resets de passwords.
Las migraciones tienen dos partes:
Al correr las migraciones se nos crearán 3 tablas, una de ella siendo migrations que nos llevará el control de cómo se va generando cada cambio.
Laravel nos ofrece Schema que nos trae diferentes cosas para trabajar sobre los sistemas de bases de datos.
Aportes 59
Preguntas 17
Si tienen versiones anteriores de MySQL v5.7.7 y les sale este error:
En este link muestran como solucionarlo:
https://www.youtube.com/watch?v=aBbIkVPwo-Y
Para los que les sale el error con las migraciones, hagan esto y ya
Si alguien tiene el problema con migrar su base de datos, de como da el docente su ejemplo, solo lo tienes que modificar el tamaño en el email como en el ejemplo.
Modificar
La primera
segunda
y luego en cmd
realizar los comando de:
php artisan migrate
luego php artisan migrate --seed
Las Migraciones en Laravel son una herramienta que nos permite crear una especie de sistema de control de versiones de bases de datos donde podemos definir tablas con POO en vez de SQL, es compatible con los diferentes motores de base de datos dado que Laravel genera el SQL por nosotros, adaptado al tipo de base de datos con la que estemos trabajando.
Link actualizado con la información de Migraciones en Laravel.
https://laravel.com/docs/7.x/migrations
Si alguien desea usar laravel con docker les dejo mi repositorio Laravel_docker
Probelma frecuente:
Si por alguna razón tienes un error como:
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table users add unique users_email_unique(email))
La solución esta en la Documentación oficial de laravel y basta editar el archivo AppServiceProvider.php en la ruta [ app/Providers ]
Si tienen versiones anteriores a MySQL v5.7.7 o Maria DB y les aparece el siguiente error:
[Illuminate\Database\QueryException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table users add unique users_email_unique(email))
Acá está la solución: https://laravel-news.com/laravel-5-4-key-too-long-error
Apuntes:
Laravel ofrece una herramienta para migraciones en bases de datos, que actúan como archivos en PHP y al momento de haber cambios en las bases de datos (inserciones, ediciones o eliminaciones), este archivo se actualizara para luego ser enviado por medio del VCS a alguna plataforma de desarrollo colaborativo como GitHub.
A través de la ayuda que nos presta el comando ‘php artisan’, podemos ver que existe un comando llamado ‘make:migration’, asi como también un comando llamado ‘migrate’, el cual contiene otros subcomandos que nos van a ayudar con el tema de las migraciones.
Facil solucion al error presentado.
Fachada o Facade
Las Facades (o Fachadas) son un patrón de diseño de la Programación Orientada a Objetos que nos permite ocultar un subsistema detrás de un objeto.
Solución para corregir el error
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes
[https://es.stackoverflow.com/questions/159624/error-sqlstate42000]
Para el error:
access-denied-for-user-homesteadlocalhost-using-password-yes
Pueden entrar aqui: https://stackoverflow.com/questions/29756194/access-denied-for-user-homesteadlocalhost-using-password-yes
Para el error del Scecified key was too long: https://laravel-news.com/laravel-5-4-key-too-long-error
Quedo atento.
En la documentación dan la solución a este error.
[Illuminate\Database\QueryException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table users add unique users_email_unique(email))
Index Lengths & MySQL / MariaDB
Laravel uses the utf8mb4 character set by default, which includes support for storing “emojis” in the database. If you are running a version of MySQL older than the 5.7.7 release or MariaDB older than the 10.2.2 release, you may need to manually configure the default string length generated by migrations in order for MySQL to create indexes for them. You may configure this by calling the Schema::defaultStringLength method within your AppServiceProvider:
use Illuminate\Support\Facades\Schema;
/**
en el video acontinuacion le dan solucion
https://youtu.be/kVqRUCnVkH8?list=PLIddmSRJEJ0sxS-RmqdRMlkyWOQWvEGEt
tengo el siguiente error al hacer el migrate
PDOException:😦“could find driver”)
C:\xampp\htdocs\curso-laravel\vendor\laravel\framework\src\Illuminate\Database\connectors.php:70
PDO::__construct(“pgsql:host=127.0.0.1; dbname=cursolaravel;port=5432;sslmode=prefer”, “postgres”, “123456”, [])
C:\xampp\htdocs\curso-laravel\vendor\laravel\framework\src\Illuminate\Database\connectors.php:70
gracias por su ayuda
A mi me aparece este error
php artisan migrate
Imagino que lo que hace Laravel con esa tabla de migraciones, es consultar si los archivos que estan en el directorio existen ya en esa tabla. Si no estan, crea las tablas y luego inserta el nombre de la migracion en la tabla migrations.
Alguien sabe realmente como es el proceso?
😃
Estoy siguiendo el curso con la base de datos postgresql y con el SO windows 10, al momento de realizar la migración me salía el siguiente error:
Illuminate\Database\QueryException : could not find driver (SQL: select * from information_schema.tables where table_schema = public and table_name = migrations and table_type = 'BASE TABLE')
Lo único que tuve que hacer adicional fue en el archivo php.ini
habilitar el driver extension=pgsql
y extension=pdo_pgsql
. Con habilitarlos me refiero únicamente a quitarles el ; inicial.
Si alguien esta usando docker, postgres y laravel y tiene el problema php artisan migrate Illuminate\Database\QueryException : SQLSTATE[HY000] [1049] Unknown database ‘laravel’ (SQL: select * from information_schema.tables where table_schema = laravel and table_name = migrations and table_type = ‘BASE TABLE’)
debe agregar RUN docker-php-ext-install pgsql pdo pdo_pgsql al dockerfile
Estoy trabajando con Mamp en windows; y tuve 2 error messages cuando corria el comando “php artisan migrate”:
1) Illuminate\Database\QueryException : could not find driver (SQL: select * from information_schema.tables where table_schema = bud
getProject and table_name = migrations and table_type = ‘BASE TABLE’)
—Lo resolvi cambiando la linea de codigo del file de mamp php.ini “;extension=pdo_mysql por extension=pdo_mysql.”
luego tuve este error:
— quite los cambios que le hize a esta linea de codigo dejandola como antes asi: ‘unix_socket’ => env(‘DB_SOCKET’, ‘’) en config->database.php y ademas corri este comando:
php artisan config:cache
para luego correr el comando que el profesor dice php artisan migrate y funciono!
Pregunta: ¿Esto funciona para crear una DB pero existe algun problema si borro los archivos create_user_table y create_password_reset_table y utiliizo un db que ya alla creado?
no me funciona el laravel para los proyectos 127.0.0.1:8000 no funciona
Compañeros si alguno le genera este error al utilizar php artisan migrate
Illuminate\Database\QueryException
could not find driver (SQL: select * from information_schema.tables where table_schema = cursolaravel and table_name = migrations and table_type = 'BASE TABLE')
at vendor/laravel/framework/src/Illuminate/Database/Connection.php:671
667| // If an exception occurs when attempting to run a query, we'll format the error
668| // message to include the bindings with SQL, which will make this exception a
669| // lot more helpful to the developer instead of just the database's errors.
670| catch (Exception $e) {
> 671| throw new QueryException(
672| $query, $this->prepareBindings($bindings), $e
673| );
674| }
675|
+34 vendor frames
35 artisan:37
Illuminate\Foundation\Console\Kernel::handle()```
ejecuten esta linea:
sudo apt install php-mysql
Esto funciono despues de muchos intentos y explorar foros encontre esa solucion :) de igual modo dejo en enlace [](https://stackoverflow.com/questions/50427208/could-not-find-driver-error-when-using-php-artisan-migrate)
Las migraciones nos ayudan a crear tablas, borrarlas o devolverlas a un estado original, son especialmente buenas en el caso de tener equipos de trabajo los cuales generen cambios constantes a las tablas. ( php artisan migrate [ Ejecuta todas las migraciones ] [ Para saber que tipo de migracion vamos a realizar ejecuta el comando ~ php artisan ~ y revisa la seccion ~ MIGRATIONS ~ ]).
Si trabajan con PostgreSQL, la configuración en el archivo .env es la siguiente:
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=dblaravel_course
DB_USERNAME=postgres
DB_PASSWORD=password
Y no olviden modificar el archivo config/database.php donde deben indicar cual es la configuración por defecto de la base de datos, en este caso sería:
'default' => env('DB_CONNECTION', 'pgsql'),
Si en algún momento tienen error que dice:
could not find driver (SQL: select * from information_schema.tables where table_schema = curso_laravel_5 and table_name = migrations and table_type = ‘BASE TABLE’)
Esto al moemtno de ejecutar php artisan migrate.
Para solucionar esto hay que instalar el paquete de php-mysql, esto me paso en Debian Linux, solo basta con ejecutar en terminal:
apt-get install php-mysql
Cuando instale correctamente, reiniciar servicios y volver a ejecutar php artisan migrate y ya genera las tablas.
Lo intenté en el equipo de mi trabajo y no funcionó pero en mi equipo personal sí pude.
Gerardo@FAMILIA-PC MINGW64 /d/Development/laragon/www/curso-laravel (master)
$ php artisan migrate
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated: 2014_10_12_100000_create_password_resets_table
Me gusta mucho esto de las migraciones a mi me pasa que me pasan todo el .sql y tengo que hacer todo pero esto es hermoso la verdad si esta muy bonito de las migraciones ♥
Jajajja el editor de vídeo no hizo todo el trabajo, le faltaron las imágenes al final…
Consulta, porque al generar el comando migrate, se llega a crear las tablas normalmente pero me aparece el siguiente error:
Illuminate\Database\QueryException : SQLSTATE[42000]: Syntax error or access violation: 1071 Specif
ied key was too long; max key length is 1000 bytes (SQL: alter table `users` add unique `users_email_un
ique`(`email`))
at D:\Dev\wamp64\www\lab\curso-laravel\vendor\laravel\framework\src\Illuminate\Database\Connection.ph
p:664
660| // If an exception occurs when attempting to run a query, we'll format the error
661| // message to include the bindings with SQL, which will make this exception a
662| // lot more helpful to the developer instead of just the database's errors.
663| catch (Exception $e) {
> 664| throw new QueryException(
665| $query, $this->prepareBindings($bindings), $e
666| );
667| }
668|
Exception trace:
1 PDOException::("SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too lon
g; max key length is 1000 bytes")
D:\Dev\wamp64\www\lab\curso-laravel\vendor\laravel\framework\src\Illuminate\Database\Connection.p
hp:458
2 PDOStatement::execute()
D:\Dev\wamp64\www\lab\curso-laravel\vendor\laravel\framework\src\Illuminate\Database\Connection.p
hp:458
Saludos, gracias de antemano
estoy borran dolo para re-alisarlo de nuevo
me ocurrio un error pero ya veo que es comun para los usuarios de xampp, gracias compañeros de estudio por la solucion
laravel me dice nothing rollback y no puedo hacer la el artisan migrate por que dice que ya existe que puedo hacer?
Qué diferencia hay entre usar el DB_USER y DB_PASS Así:
DB_USERNAME=homestead
DB_PASSWORD=secret
Y Así:
DB_USERNAME=root
DB_PASSWORD=’’
Lo pregunto porque me salía acceso denegado al ejecutar el comando migrate. y coloqué el usuario root y sin pass y se me creó.
¿Hay alguna forma de hacerlo nuevamente con el homestead y secret o así puedo seguir el curso sin problema?
Hola como puedo asignar el tamaño de cada uno de mis campos en las columnas creadas, ya que no quiero usar el total de los 255 que permite un varchar, quizá lo quiero de unos 60 solamente… podrían ayudarme con esa parte.
Hola. Quisiera saber si es posible trabajar con el Eloquent teniendo una base de datos ya creada y funcionado con muchos registros. La base ya tiene las relaciones creadas en el motor de bases de datos. La pregunta es: ¿Hay manera de evitar ejecutar las migraciones para trabajar con las relaciones de la propia base de datos?. El inconveniente es que no puedo modificar de ninguna manera la estructura de esa base de datos.
puedo en lazar el usuario que crea laravel con una tabla de vendedores que tengo creada en la base de datos?
Creo que las migraciones es lo más dificil de manejas de laravel , las demas caracteristicas yo creo que son ya mas faciles de manejar y administrar
Excelente las migraciones
++ TENGO EL SIGUIENTE ERROR ++
php artisan migrate
Illuminate\Database\QueryException : could not find driver (SQL: select * from information_schema.tables where table_schema = laravel and table_name = migrations and table_type = ‘BASE TABLE’)
at /opt/lampp/htdocs/curso_laravel/vendor/laravel/framework/src/Illuminate/Database/Connection.php:665
661| // If an exception occurs when attempting to run a query, we’ll format the error
662| // message to include the bindings with SQL, which will make this exception a
663| // lot more helpful to the developer instead of just the database’s errors.
664| catch (Exception $e) {
665| throw new QueryException(
666| $query, $this->prepareBindings($bindings), $e
667| );
668| }
669|
Exception trace:
1 PDOException:😦“could not find driver”)
/opt/lampp/htdocs/curso_laravel/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:70
2 PDO::__construct(“mysql:host=127.0.0.1;port=3306;dbname=laravel”, “root”, “”, [])
/opt/lampp/htdocs/curso_laravel/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:70
Please use the argument -v to see more details.
en esta parte laravel nos ofrece un sistema de migración para la bd donde crea varias tablas con descripciones especificas con posibilidad de revertir todo .
bueno me gustaria saber como resolver al final elimine las tablas de mi base de datos y lo pude lograr pero no usando comando sino directamente en el phpmyadmin, si pudieran ayudarme para saber cual fue mi error
Hola compañeros yo tenia el siguiente error:
1 PDOException::("SQLSTATE[HY000] [1130] Host 'ElNombreDeMiCompu' is not allowed to connect to this MySQL server")
C:\xampp\htdocs\blog\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:70
2 PDO::__construct("mysql:host=192.***.***.***;port=95**;dbname=laravel", "usuario", "password", [])
C:\xampp\htdocs\blog\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:70
Please use the argument -v to see more details.
em mi base de datos mysql workbench lo solucione de esta manera:
USE cursolaravel;
CREATE USER 'root'@'AquiPuseElNombreDeMiCompu' IDENTIFIED BY 'PonTuContraseniaDeMysql';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'AquiPuseElNombreDeMiCompu' WITH GRANT OPTION;
FLUSH PRIVILEGES;
después en la consola ya corri lo que nos enseño el profesor para hacer la migración:
php artisan migrate
ya después todo funciono y pude ver las tablas reflejadas en mi BD.
Para los que tienen los sgtes. errores:
**
C:\xampp\htdocs\curso-laravel\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:70
PDOException:😦“Packets out of order. Expected 0 received 1. Packet size=65”)
C:\xampp\htdocs\curso-laravel\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:70
PDO::__construct(“mysql:host=192.168.1.46;port=3306;dbname=cursolaravel”, “root”, “”, [])**
La solución es la IP por defecto del host del archivo “database.php”, que esta dentro de la carpeta config de nuestro proyecto; cambiarla por la IP de nuestra PC y listo, espero les sirva compañeros.
'mysql' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', '192.168.1.46'), // *CAMBIAR POR LA IP DE SU EQUIPO
Dentro de mi carpeta de migraciones no tengo la migración Password reset, en su lugar tengo la failed jobs.
No tendré problemas después cuando quiera implementar la función de password reset?.
En Ubuntu 18.4 a ejecutar el comando:
php artisan migrate
Obtenía este error:
SQLSTATE[HY000] [2006] MySQL server has gone away (SQL: select * from information_schema.tables where table_schema = moogo-laravel and table_name = migrations and table_type = ‘BASE TABLE’)
Solución:
Deja el valor por defecto en archivi .env en el siguiente parámetro:
DB_HOST=127.0.0.1
estoy trabajando el curso en Visual STUDIO code Y ME HA parecido una genialidad, me ahorre esa abridera de consola y estar deteniendo la misma para tirar un comando de artisan, le dan click derecho al directorio del proyecto en la lista de carpetas de VSC y ledicen abrir desde terminal esta se posiciona abajo
pero luego pueden desde el icono que esta al lado izquierdo de eliminar consol que quieren dividir la consola y se les creara otra consola ya lista en la raiz del proyecto sin cerrar la ejecucion de php artisan serve de la otra
Como puedo obtener esta etiqueta column: en visual studio code
al correr el comando de artisan migrate me sale esto, estoy usando postgres
Cual era el comando de consola que creaba una migración y modelo con el mismo comando?
la lista de propuedades que le pueden poner a cada registro de la migracion “TABLA”, la pueden encontrar aqui:
https://laravel.com/docs/7.x/migrations#creating-columns
es muy intuitivo y no tiene pierde porque mientras las leen se dan cuenta facilmente de que son el par de propiedades de SQL normalito solo que deben escribirse aqui como objetos
Si les aparece el siguiente error:
Illuminate\Database\QueryException
could not find driver (SQL: select * from information_schema.tables where table_schema = laravel and table_name = migrations and table_type = 'BASE TABLE')
tienen que ir al archivo php.ini y quitar el punto y coma a la siguiente linea y luego reiniciar el servidor WEB.
extension=pdo_mysql
Me sale este error, me pueden ayudar por favor.
Eloquent me parece genial incluso sin usarlo con Laravel 😄
Literalmente el sistema de migraciones de Laravel es un control de versiones de la base de datos, es esta la que nos va a ir manteniendo que cosas agregamos a nuestra base de datos, etc. Y esta se va guardando por lotes, por eso la tabla de migrations dentro de la base de datos es importante, porque es con ella con la que Laravel sabe en qué lote estás:D
hay validaciones que podemos hacer en as migraciones como esta
<?php
public function up() { //Validamos si existe la tabla if (Schema::hasTable('users')){ Schema::table('users', function (Blueprint $table) { //valido si existe la columna en la tabla if (!Schema::hasColumn('users', 'activo')){ $table->tinyInteger('activo')->after('updated_at')->comment('Si está activo=1, Inactivo=2'); } }); } }
>
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?