Как мне отредактировать миграцию в фреймворке laravel? - PullRequest
0 голосов
/ 06 октября 2019

Я пытаюсь изменить миграцию

вот миграция

<?php

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

class CreateCustomersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('customers.blade.php', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('name');
            $table->timestamps();
        });
    }

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

Я добавил часть электронной почты, но когда я пытался использовать откат, я получаю эту ошибку

Rolling back: 2019_10_06_090218_create_customers_table

   Illuminate\Database\QueryException  : SQLSTATE[HY000]: General error: 1 near ".": syntax error (SQL: drop table if exists "customers"."blade"."php")

  at /Users/macair13/blog/meatrack/vendor/laravel/framework/src/Illuminate/Database/Connection.php:665
    661|         // If an exception occurs when attempting to run a query, we'll format the error
    662|         // message to include the bindings with SQL, which will make this exception a
    663|         // lot more helpful to the developer instead of just the database's errors.
    664|         catch (Exception $e) {
  > 665|             throw new QueryException(
    666|                 $query, $this->prepareBindings($bindings), $e
    667|             );
    668|         }
    669| 

  Exception trace:

  1   PDOException::("SQLSTATE[HY000]: General error: 1 near ".": syntax error")
      /Users/macair13/blog/meatrack/vendor/laravel/framework/src/Illuminate/Database/Connection.php:453

  2   PDO::prepare("drop table if exists "customers"."blade"."php"")
      /Users/macair13/blog/meatrack/vendor/laravel/framework/src/Illuminate/Database/Connection.php:453

  Please use the argument -v to see more details.

Пожалуйста, помогите мне решить эту проблему, потому что для себя я не вижу, что не так с тем, что я делаю.

Ответы [ 4 ]

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

У вас неверное имя таблицы в схеме, замените его следующим

public function up()
    {
        Schema::create('customers', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('name');
            $table->timestamps();
        });
    }

Затем просто выполните команду ремесленника

php artisan migrate:fresh
1 голос
/ 06 октября 2019

Передайте имя таблицы вместо имени представления

<?php

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

class CreateCustomersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        // Here
        Schema::create('customers', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('name');
            $table->timestamps();
        });
    }

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

name.blade.php зарезервировано для представлений HTML

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

Неверный синтаксис миграции

Когда вы добавляете столбец в обработчик «вверх», рекомендуется удалить его в функции дескриптора «вниз».

В вашем случае вы добавили столбец «name», и при удалении удалялась бы вся таблица (хотя и с неправильной формулировкой)!

public function down()
{
    $table->dropColumn('name');
}
0 голосов
/ 06 октября 2019

Вы не должны изменять / откатывать уже развернутые миграции.

Если это все еще только в вашей базе данных разработки, вы можете просто сбросить базу данных. (php artisan migrate:fresh)

... и, как уже упоминалось в других ответах, вы, вероятно, используете неправильное имя таблицы. Миграции не имеют ничего общего с именем вашего (HTML-шаблона) имени файла.

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