RethinkDB — невозможно мигрировать в Laravel 5.5

Я пытаюсь создать демо RethinkDB + Laravel после этого мерзавец и там я застрял в миграции моих миграций. Когда я пытаюсь мигрировать с помощью php artisan migrate Я получил эту ошибку

[Symfony\Component\Debug\Exception\FatalThrowableError]
Type error: Argument 1 passed to Users::{closure}() must be an instance of duxet\Rethinkdb\Schema\Blueprint, instance of Illuminate\Database\Sc
hema\Blueprint given, called in /opt/lampp/htdocs/xyzz-laravel/vendor/laravel/framework/src/Illuminate/Database/Schema/Builder.php on line 164

Я посмотрел на эту проблему в репо, но там она указана в ошибке и не была должным образом решена. Есть кто-нибудь, кто сталкивался с этим и имеет представление о том, как исправить эту ошибку?

вот моя миграция, которую я сделал.

<?php

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

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

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

Заранее спасибо 🙂

1

Решение

Исправить эту проблему с помощью этой команды

php artisan migrate --database=rethinkdb

как у меня DB_CONNECTION='rethinkdb в моем database.php файл также вы найдете другие проблемы, когда вы получите пройти эту ошибку, и для этого я раздвоил это репо и просил тянуть запрос. До этого момента вы можете исправить это самостоятельно.

№ 1 а также Выпуск # 39 репо

Для этого вам нужно указать имя базы данных во время миграции, если у вас есть несколько БД, как по умолчанию это будет идти для Illuminate\Database\Schema\Blueprint как это

php artisan migrate --database=rethinkdb

и тогда вы получите еще одну ошибку в Blueprint.php указано здесь

[ErrorException] Объявление duxet \ RethinkDB \ Schema \ Blueprint :: index ($ column,
$ options = NULL) должен быть совместим с
Подсветка \ База данных \ Схема \ Blueprint :: index ($ столбцы, $ name =
NULL, $ алгоритма = NULL)

Вы можете исправить это, внеся изменения в Blueprint.php заменив

public function index($column, $options = null)

от

public function index($columns, $name = NULL, $algorithm = NULL)

Выпуск № 2 а также Выпуск # 41 который гласит

[Symfony \ Component \ Debug \ Exception \ FatalErrorException] Уровень доступа к операторам duxet \ Rethinkdb \ Query \ Builder :: $ должен быть
public (как в классе Illuminate \ Database \ Query \ Builder)

Для исправления этой проблемы вы должны внести изменения в Builder.php

изменить $operator тип доступа к public от protected

public $operators = [
'=', '<', '>', '<=', '>=', '<>', '!=',
'like', 'not like', 'between', 'ilike',
'&', '|', '^', '<<', '>>',
'rlike', 'regexp', 'not regexp',
'~', '~*', '!~', '!~*',
'contains', 'exists', 'type', 'mod', 'size',
];

Выпуск № 3

После этого вы найдете еще одну проблему, которая также есть репо Выпуск # 42

Для этого вы должны отредактировать Builder.php где нужно заменить

 public function groupBy()

от

 public function groupBy(...$groups)

Выпуск № 4

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

[Symfony \ Component \ Debug \ Exception \ FatalThrowableError] Вызов функции-члена поддерживает SchemaTransactions () в null

Чтобы решить эту проблему, вам необходимо выполнить следующие шаги.
1. создать файл Grammar.php в src/Schema Пространство имен и вставьте этот код.

<?php

namespace duxet\RethinkDB\Schema;

use Illuminate\Database\Schema\Grammars\Grammar as BaseGrammar;

/**
* Class Grammar
*
* @package Moloquent\Schema
*/
class Grammar extends BaseGrammar {
}
  1. Теперь вам нужно изменить Connection.php

во-первых, добавьте это

use duxet\Rethinkdb\Schema\Grammar;

а затем внутри public function __construct(array $config) Добавь это

$this->schemaGrammar = new Grammar();

Все вышеперечисленные вещи я исправил в раздвоенная версия и сделал запрос на извлечение. Надеюсь, это поможет вам, и вам не нужно будет чесать голову, как я 🙂

ОБНОВИТЬ

13-го ноября запрос на получение ответа принят, и теперь вам не нужно будет делать следующие шаги, если вы обнаружили какие-либо проблемы, вы все равно можете попробовать.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]