Столбец Laravel уже существует: 1060 Повторяющееся имя столбца - PullRequest
1 голос
/ 31 октября 2019

Я пытаюсь выполнить эту миграцию, но она выдаёт мне эту ошибку

enter code here
<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateUsersTable extends Migration
{

public function up()
{

    //CREANDO UN MODELO PARA LOS ROLES DEL USUARIO
    Schema::create('roles', function (Blueprint $table) {
        $table->Increments('id');
        $table->string('name')->comment('Nombre del rol del usuario');
        $table->text('description');
        $table->timestamps();
    });

    Schema::create('users', function (Blueprint $table) {
        $table->bigIncrements('id');
        $table->unsignedInteger('role_id')->default(\App\Role::STUDENT);
        $table->foreign('role_id')->references('id')-> on('roles');
        $table->string('name');
        $table->string('email')->unique();
        $table->timestamp('email_verified_at')->nullable();
        $table->string('password');
        $table->string('picture')->nullable();

        //cashier columns
        $table->string('stripe_id')->nullable();
        $table->string('card_brand')->nullable();
        $table->string('card_last_four', 4)->nullable();
        $table->timestamp('trial_ends_at')->nullable();


        $table->rememberToken();
        $table->timestamps();
    });

    Schema::create('subscriptions',function (Blueprint $table) {
            $table->increments('id');
            $table->unsignedBigInteger('user_id');
            $table->foreign('user_id')->references('id')->on('users');
            $table->string('name');
            $table->string('stripe_status');
            $table->string('stripe_plan');
            $table->integer('quantity');
            $table->timestamp('trial_ends_at')->nullable();
            $table->timestamp('ends_at')->nullable();
            $table->timestamps();
        });

    Schema::create('user_social_accounts', function (Blueprint $table) {
        $table->increments('id');
        $table->unsignedBigInteger('user_id');
        $table->foreign('user_id')->references('id')-> on('users');
        $table->string('provider');
        $table->string('provider_uid');

    });
    }


    public function down()
    {
    Schema::dropIfExists('users');
    Schema::dropIfExists('roles');
    Schema::dropIfExists('subscriptions');
    Schema::dropIfExists('user_social_accounts');
    }
    }

и выдаёт эту ошибку

Столбец уже существует: 1060 Повторяющееся имя столбца 'stripe_id' (SQL:изменить таблицу users добавить stripe_id varchar (255) null, добавить card_brand varchar (255) null, добавить card_last_four varchar (4) null, добавить trial_ends_at timestamp null)

Trace Exception trace:

1 PDOException: :( "SQLSTATE [42S21]: Столбец уже существует: 1060 Повторяющееся имя столбца 'stripe_id'") C: \ laragon \ www \ learning \ vendor \ laravel \ framework \ src \ Illuminate \ \База данных \ Connection.php: 459

2 PDOStatement :: execute () C: \ laragon \ www \ learning \ vendor \ laravel \ framework \ src \ Illuminate \ Database \ Connection.php: 459

Ответы [ 2 ]

2 голосов
/ 31 октября 2019

Касса поставляется с миграциями, которые добавляют для вас «столбцы клиентов» в таблицу users.

«Поставщик услуг« Кассир »регистрирует свой собственный каталог миграции базы данных, поэтому не забудьте перенести вашу базу данныхпосле установки пакета. Миграция Кассира добавит несколько столбцов в таблицу ваших пользователей , а также создаст новую таблицу подписок для хранения всех подписок вашего клиента "

Документы Laravel 6.x - Касса - Установка

Таким образом, эти миграции пытаются добавить столбец, который вы добавили самостоятельно.

"Если вы хотите запретить КассуДля полной миграции вы можете использовать ignoreMigrations, предоставленный Cashier. "

1 голос
/ 31 октября 2019

Если вы используете laravel / cashier, он добавит миграцию для столбцов кассира и таблицы подписки для вас. Таким образом, вам не нужно писать отдельную миграцию для этого. Удалите миграцию для столбцов кассира и подписки и попробуйте выполнить миграцию снова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...