Besoin d'aide ?

Problème de migration vers ma bdd

Avatar de OliveSept
OliveSept

Bonsoir !

Je travail actuellement sur un nouveau projet en Laravel. J'essaye de créer une table depuis ma console. j'ai donc créer le fichier de migration :

PS G:\WAMP\www\newProject> php artisan make:migration create_members_table

puis dans ce fichier j'ai créer les colonnes de ma table (j'ai un peu c/c la table users, celle que Laravel a à défaut):

<?php
 
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
 
class CreateMembersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('members', function (Blueprint $table) {
            $table->id();
            $table->string('nom',50);
            $table->string('prenom',50);
            $table->string('pseudo',50);
            $table->string('email',150)->unique();
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password',150);
            $table->date('ddn');
            $table->integer('tel',10);
            $table->string('adresse',150);
            $table->integer('CP',5);
            $table->string('ville',100);
            $table->boolean('admin');
            $table->string('avatar',100);
            $table->timestamps();
        });
    }
 
    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('members');
    }
}

Mais après dans la console quand je tape "php artisan migrate" ça me sors une erreur ! Il créé bien les tables de Laravel, mais pas la mienne !

SQLSTATE[42000]: Syntax error or access violation: 1075 Un seul champ automatique est permis et il doit être indexé

De ce que j'ai lu sur le net c'est une erreur lié au faite qu'il ne peut y avoir qu'une seul colonne en auto-increment !! Or je ne vois pas ou j'ai pu en faire une deuxième !! Surtout que pas mal de colonne sont inspiré de la table "users_table" que Laravel créé à défaut et qui n'a pas ce souci là !! Donc c'est là ou je ne comprends pas :/ !! en faite ma table est quasi identique à la table users sauf que j'ai ajouté des colonnes qui reste assez basique pourtant !

D'ailleurs à ce propos, Laravel a 4 fichiers dans le dossier migrations à défaut(users/password_reset/failed_jobs/personal_access_token)... Sont il important ou peut on s'en débarrasser ? Ou ni l'un ni l'autre, il servent pas à grand chose mais gène en rien...

Merci

Edit : J'ai trouvé le souci... On ne peut pas mettre d'agument pour limiter le nombre de chiffre pour un integer apparement ! Uniquement pour les string !

Avatar de Dom
Dom

Salut Olivier,

Tu ne devrais pas stocker les numéros de téléphone avec une entier en fait. Et un autre conseil, si je peux me permettre, en regardant ta migration. Tu mélange l'anglai et le francais, tu devrais tout passer en anglais.

Vous ne pouvez pas répondre à ce sujet.