Я не могу запустить php artisan migrate - PullRequest
0 голосов
/ 27 июня 2018

Я пытаюсь запустить команду php artisan migrate, но не получаю ее. Я получаю эту ошибку

SQLSTATE [42601]: синтаксическая ошибка: 7 ОШИБКА: идентификатор с разделителями нулевой длины, равный или равный "" "" \ n ЛИНИЯ 1: установите для search_path значение "" \ n ^ (SQL: выберите количество (*) как агрегат из "категорий", где "удаленный_кат" равен нулю, а "удаленный каталог". "Удаленный_кат" равен нулю).

Мой класс миграции Категория:

<?php

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

class CreateCategoriasTable extends Migration
{
    /**
    * Run the migrations.
    *
    * @return void
    */
    public function up()
    {
        Schema::create('categoria', function (Blueprint $table) {
            $table->increments('id');
            $table->string('nome', 60);
            $table->timestamps();
            $table->softDeletes();
        });
    }

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

Это место происходит, когда я запускаю команду php artisan migrate. В бродяге эта ошибка появляется

vagrant@homestead:~/code/controle-interno$ php artisan migrate
**************************************
*     Application In Production!     *
**************************************

 Do you really wish to run this command? (yes/no) [no]:
 > yes


In Connection.php line 664:

  SQLSTATE[42601]: Syntax error: 7 ERROR:  zero-length delimited identifier at or near """"
  LINE 1: set search_path to ""
                             ^ (SQL: select * from information_schema.tables where table_schema = public and table_name = migrations)


In PDOStatement.php line 143:

  SQLSTATE[42601]: Syntax error: 7 ERROR:  zero-length delimited identifier at or near """"
  LINE 1: set search_path to ""
                             ^


In PDOStatement.php line 141:

  SQLSTATE[42601]: Syntax error: 7 ERROR:  zero-length delimited identifier at or near """"
  LINE 1: set search_path to ""
                             ^

Моя установка - самая последняя усадьба Ларавеля

  • Laravel 5.5
  • Postgres 10,4

Буду очень признателен за любую помощь!

1 Ответ

0 голосов
/ 30 июня 2018

Мне удалось решить мою проблему, изменив переменную $schema метода configureSchema ($connection, $config) класса /vendor/laravel/framework/src/Illuminate/Database/Connectors/PostgresConnector.php на созданную мной схему.

До

/**
 * Set the schema on the connection.
 *
 * @param  \PDO  $connection
 * @param  array  $config
 * @return void
 */
protected function configureSchema($connection, $config)
{
    if (isset($config['schema'])) {
        $schema = $this->formatSchema($config['schema']);

        $connection->prepare("set search_path to {$schema}")->execute();
    }
}

* После 1012 *

/**
 * Set the schema on the connection.
 *
 * @param  \PDO  $connection
 * @param  array  $config
 * @return void
 */
protected function configureSchema($connection, $config)
{
    if (isset($config['schema'])) {
        // $schema = $this->formatSchema($config['schema']);
        $schema = 'controle_interno';

        $connection->prepare("set search_path to {$schema}")->execute();
    }
}

Я понял проблему отладки трассировки стека и понял, что по какой-то причине переменная $schema стала пустой.

Если кто-то кратко объясняет, почему происходит эта ошибка, я отмечаю ее как ответ.

...