Ошибка миграции renameColumn для существующего столбца со столбцами не существует ошибка - PullRequest
0 голосов
/ 09 апреля 2020

Я получаю ошибку Doctrine\DBAL\Schema\SchemaException : There is no column with name 'price' on table 'class_rooms'. во время выполнения миграции, чтобы переименовать столбец price в таблице class_rooms моего приложения. Таблица создается с помощью миграции, которая выполняется перед миграцией с переименованием через файл миграции с именем 2019_03_13_054619_create_class_rooms_table со следующим кодом

class CreateClassRoomsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('class_rooms', function (Blueprint $table) {
            $table->uuid('id')->primary();
            $table->uuid('yoga_style_id');
            $table->date('start_date')->nullable();
            $table->date('end_date')->nullable();
            $table->time('duration_from')->nullable();
            $table->time('duration_to')->nullable();
            $table->string('name');
            $table->bigInteger('price');
            $table->longText('description')->nullable();
            $table->string('image')->nullable();
            $table->string('meta_title')->nullable();
            $table->text('meta_description')->nullable();
            $table->text('meta_keywords')->nullable();
            $table->boolean('active')->default(true);
            $table->softDeletes();
            $table->timestamps();
            $table->foreign('yoga_style_id')->references('id')->on('yoga_styles')
                ->onDelete('cascade');
            }
        );
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('class_rooms');
    }
}

, как вы видите, здесь определен столбец цены. У меня установлена ​​doctrine/dbal и Laravel версия, которую я использую - 5.7. Переименование миграции выглядит следующим образом

class RenamePriceClassRoomsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('class_rooms', function (Blueprint $table) {
            $table->renameColumn('price', 'cost_subscribed');
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('class_rooms', function (Blueprint $table) {
            //
        });
    }
}

Я получаю ошибку

Migrating: 2019_04_10_132923_rename_price_class_rooms_table

   Doctrine\DBAL\Schema\SchemaException  : There is no column with name 'price' on table 'class_rooms'.

  at /Users/anadi/Code/new_web_app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Schema/SchemaException.php:82
    78|      * @return \Doctrine\DBAL\Schema\SchemaException
    79|      */
    80|     public static function columnDoesNotExist($columnName, $table)
    81|     {
  > 82|         return new self(
    83|             sprintf("There is no column with name '%s' on table '%s'.", $columnName, $table),
    84|             self::COLUMN_DOESNT_EXIST
    85|         );
    86|     }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...