IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Laravel PHP Discussion :

Erreur avec les migrations de laravel


Sujet :

Laravel PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 163
    Par défaut Erreur avec les migrations de laravel
    Bonjour à tous.

    J'ai installé Laravel via composer avec succès et me suis lancé dans la mise en place de mon .env. Tout fonctionnais nickel et ensuite j'ai essayer de faire une création de table MySQL via "php artisan migrate" mais là j'ai une erreur :
    Citation Envoyé par Ma console
    Migration table created successfully.

    [Illuminate\Database\QueryException]
    SQLSTATE[42000]: Syntax error or access violation: 1071 La cl├® est trop longue. Longueur maximale: 1000 (SQL: alter
    table `users` add unique `users_email_unique`(`email`))

    [PDOException]
    SQLSTATE[42000]: Syntax error or access violation: 1071 La cl├® est trop longue. Longueur maximale: 1000
    Je ne vois pas ce que j'ai pu rater vue que c'est deux fichiers compiler automatiquement par Laravel (databases/migrations/2014_10_12_000000_create_users_table.php et 2014_10_12_100000_create_password_resets_table.php)... Mon fichier de migration pour ma table passe bien quand à lui.

    J'ai une version de wampserver à jour avec PHP 7.1.0, MySQL 5.7.9, et Apache 2.4.17

    Si quelqu'un serai me dire pourquoi chez moi j'ai cette erreur. Merci d'avance.

  2. #2
    Membre averti
    Homme Profil pro
    Autre
    Inscrit en
    Janvier 2017
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Janvier 2017
    Messages : 24
    Par défaut
    Pas de réponse, dommage, j'ai le même problème !

  3. #3
    Membre averti
    Homme Profil pro
    Autre
    Inscrit en
    Janvier 2017
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Janvier 2017
    Messages : 24
    Par défaut En fait, j'ai trouvé la solution sur un forum en anglais
    Il faut remplacer le fichier AppServiceProvider.php par ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    <?php
     
    namespace App\Providers;
     
    use Illuminate\Support\ServiceProvider;
    use Illuminate\Support\Facades\Schema;
     
    class AppServiceProvider extends ServiceProvider
    {
        /**
         * Bootstrap any application services.
         *
         * @return void
         */
        public function boot()
        {
            Schema::defaultStringLength(191);
        }
     
        /**
         * Register any application services.
         *
         * @return void
         */
        public function register()
        {
            //
        }
    }

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 163
    Par défaut
    Merci. Perso je n'avais aucune réponse sur le forum de laravel et je tournais toujours en rond... Est ce que tu aurai encore le lien vers ce site par hazard ?

  5. #5
    Membre averti
    Homme Profil pro
    Autre
    Inscrit en
    Janvier 2017
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Janvier 2017
    Messages : 24
    Par défaut
    Aucun souci, je l'avais mis au chaud !
    Le voici :
    https://github.com/laravel/framework/issues/17508

    Bonsoir

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 163
    Par défaut
    Great thanks. I take off my hat for you

  7. #7
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 84
    Par défaut
    le problème sur laravel 5.4 par rapport aux versions antérieures, c'est que dans le fichier config/database.php, dans l'array 'mysql', deux lignes ont été modifiées:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
                'charset' => 'utf8mb4',
                'collation' => 'utf8mb4_unicode_ci',
    en retirant juste les 'mb4' comme pour la version 5.3 de laravel (mb4 sert pour le stockage des emoji), le problème est résolu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
                'charset' => 'utf8',
                'collation' => 'utf8_unicode_ci',

  8. #8
    Nouveau candidat au Club
    Femme Profil pro
    Étudiante
    Inscrit en
    Août 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Étudiante

    Informations forums :
    Inscription : Août 2017
    Messages : 3
    Par défaut
    Bonjour à tous!
    Je voudrais savoir comment activer "innodb_large_prefix" sur mon mysql v.5.7.19!
    Merci

    [Illuminate\Database\QueryException]
    SQLSTATE[42000]: Syntax error or access violation: 1071 La cl├® est trop longue. Longueur maximale: 1000 (SQL: alter table `posts` add unique `posts_slug_unique`(`s

    lug`))



    [PDOException]
    SQLSTATE[42000]: Syntax error or access violation: 1071 La cl├® est trop longue. Longueur maximale: 1000

  9. #9
    Nouveau candidat au Club
    Femme Profil pro
    Étudiante
    Inscrit en
    Août 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Étudiante

    Informations forums :
    Inscription : Août 2017
    Messages : 3
    Par défaut
    ah ça marche j'ai tout refait mes migrations et ça a marché merci

  10. #10
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2018
    Messages : 1
    Par défaut j'ai eu le meme proble "migrate" ca passe pas mais ce codde ne foctionne pas pour moi aide moi svp
    Citation Envoyé par tindal35 Voir le message
    Il faut remplacer le fichier AppServiceProvider.php par ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    <?php
     
    namespace App\Providers;
     
    use Illuminate\Support\ServiceProvider;
    use Illuminate\Support\Facades\Schema;
     
    class AppServiceProvider extends ServiceProvider
    {
        /**
         * Bootstrap any application services.
         *
         * @return void
         */
        public function boot()
        {
            Schema::defaultStringLength(191);
        }
     
        /**
         * Register any application services.
         *
         * @return void
         */
        public function register()
        {
            //
        }
    }

  11. #11
    Nouveau candidat au Club
    Homme Profil pro
    ingénieur décisionnel
    Inscrit en
    Décembre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : ingénieur décisionnel

    Informations forums :
    Inscription : Décembre 2008
    Messages : 2
    Par défaut
    Bonjour

    Avec MySql5.6.XXX, une solution plus clean consiste à modifier le fichier database.php dans le dossier config :

    'engine' => null,

    Devient :
    'engine' => 'InnoDB ROW_FORMAT=DYNAMIC',

    Ou tout autre type de engine paramétré lors de l'install de MySql...

  12. #12
    Invité de passage
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2021
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2021
    Messages : 1
    Par défaut
    Salut,

    Je me permets de remonter juste pour apporter une solution plus propre que celles que j'ai pu voir - ce sujet remontant en tête de Google quand on cherche l'erreur remontée par la migration.
    Le problème vient du moteur de BDD ciblé. Par défaut, Laravel semble pointer sur un moteur InnoDB tandis que le moteur par défaut dans Wamp est MyISAM.

    Il suffit donc de modifier le fichier de configuration my.ini afin d'indiquer quel moteur par défaut on souhaite utiliser (ie. INNODB) puis de redémarrer les services.

    En espérant que ça aide.

    NB : ça me semble rejoindre la réponse de manu_aix, il est possible de changer le moteur a utiliser. Mais là encore, il faut que le moteur configuré côté Laravel corresponde à celui de la BDD.

  13. #13
    Membre habitué
    Homme Profil pro
    Analyste fonctionnel
    Inscrit en
    Mars 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Analyste fonctionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 10
    Par défaut solution trouvée
    test effectué sur laravel 8.5 j'ai modifié dans le fichier config/database.php, dans l'array 'mysql', les deux lignes charset et collation

    valeur initiales :
    'charset' => 'utf8mb4',
    'collation' => 'utf8mb4_unicode_ci',

    sur mion serveur wamp

    'charset' => 'utf8',
    'collation' => 'utf8_general_ci',

    la migration est passée comme une lettre à la poste

  14. #14
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 8
    Par défaut merciiiii, c'est la meilleure solution
    Citation Envoyé par victordu Voir le message
    Salut,

    Je me permets de remonter juste pour apporter une solution plus propre que celles que j'ai pu voir - ce sujet remontant en tête de Google quand on cherche l'erreur remontée par la migration.
    Le problème vient du moteur de BDD ciblé. Par défaut, Laravel semble pointer sur un moteur InnoDB tandis que le moteur par défaut dans Wamp est MyISAM.

    Il suffit donc de modifier le fichier de configuration my.ini afin d'indiquer quel moteur par défaut on souhaite utiliser (ie. INNODB) puis de redémarrer les services.

    En espérant que ça aide.

    NB : ça me semble rejoindre la réponse de manu_aix, il est possible de changer le moteur a utiliser. Mais là encore, il faut que le moteur configuré côté Laravel corresponde à celui de la BDD.

  15. #15
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2021
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2021
    Messages : 1
    Par défaut
    Citation Envoyé par BeRoots Voir le message
    Bonjour à tous.

    J'ai installé Laravel via composer avec succès et me suis lancé dans la mise en place de mon .env. Tout fonctionnais nickel et ensuite j'ai essayer de faire une création de table MySQL via "php artisan migrate" mais là j'ai une erreur :


    Je ne vois pas ce que j'ai pu rater vue que c'est deux fichiers compiler automatiquement par Laravel (databases/migrations/2014_10_12_000000_create_users_table.php et 2014_10_12_100000_create_password_resets_table.php)... Mon fichier de migration pour ma table passe bien quand à lui.

    J'ai une version de wampserver à jour avec PHP 7.1.0, MySQL 5.7.9, et Apache 2.4.17

    Si quelqu'un serai me dire pourquoi chez moi j'ai cette erreur. Merci d'avance.
    Vous devriez avoir php >= 7.2.5

Discussions similaires

  1. [XSLT] erreur avec les fonctions
    Par frouge dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 18/07/2006, 10h15
  2. une erreur avec les pointeur..
    Par lecyberax dans le forum C
    Réponses: 12
    Dernier message: 15/04/2006, 12h04
  3. [XSL] Erreur avec les liens RSS
    Par tania dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 05/12/2005, 16h11
  4. erreur avec les floats
    Par Halobox dans le forum C
    Réponses: 14
    Dernier message: 11/10/2005, 23h23
  5. Erreur avec les ADO
    Par megane dans le forum Bases de données
    Réponses: 7
    Dernier message: 08/03/2004, 21h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo