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 régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 163
    Points : 93
    Points
    93
    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
    Nouveau membre du Club
    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
    Points : 35
    Points
    35
    Par défaut
    Pas de réponse, dommage, j'ai le même problème !

  3. #3
    Nouveau membre du Club
    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
    Points : 35
    Points
    35
    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 régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 163
    Points : 93
    Points
    93
    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
    Nouveau membre du Club
    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
    Points : 35
    Points
    35
    Par défaut
    Aucun souci, je l'avais mis au chaud !
    Le voici :
    https://github.com/laravel/framework/issues/17508

    Bonsoir

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

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

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 84
    Points : 83
    Points
    83
    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',
    Sans pomme nous n'aurions jamais découvert la gravité... Sans tête Non plus.

  8. #8
    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
    Points : 3
    Points
    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
    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
    Points : 3
    Points
    3
    Par défaut
    ah ça marche j'ai tout refait mes migrations et ça a marché merci

  10. #10
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Algérie

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

    Informations forums :
    Inscription : Avril 2018
    Messages : 1
    Points : 2
    Points
    2
    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
    Futur Membre du 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
    Points : 5
    Points
    5
    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
    Futur Membre du Club
    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
    Points : 6
    Points
    6
    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 à l'essai
    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
    Points : 14
    Points
    14
    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 à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 8
    Points : 10
    Points
    10
    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
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2021
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2021
    Messages : 1
    Points : 1
    Points
    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