Я не могу удалить коллекции MongoDB с помощью команды migrate: fresh. Проект на Laravel 5.7 и мы используем jenssegers/laravel-mongodb
. Когда я пытаюсь запустить миграцию: fresh появляется сообщение об ошибке
MongoDB \ Driver \ Exception \ CommandException: коллекция 'project.drivers' уже существует
Если я вручную удаляю коллекции и запускаю миграцию: заново, коллекции создаются снова. Это сбивает с толку, как будто коллекция может быть создана с использованием Schema::connection('mongodb')->create('drivers', ...
Я не уверен, почему коллекция не удаляется при запуске Schema::connection('mongodb')->drop('drivers');
Ниже приведен один из моих файлов миграции, который выдает ошибку.
use Illuminate\Database\Migrations\Migration;
use Illuminate\Support\Facades\Schema;
use Jenssegers\Mongodb\Schema\Blueprint;
class CreateDriversTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mongodb')->create('drivers', function (Blueprint $collection) {
$collection->string('first_name');
$collection->string('last_name');
$collection->string('id_number');
$collection->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mongodb')->drop('drivers');
}
}
MySQL является основным подключением к базе данных. И мой файл .env выглядит так
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=project
DB_CONNECTION_MONGO=mongodb
DB_HOST_MONGO=127.0.0.1
DB_PORT_MONGO=27017
DB_DATABASE_MONGO=project
Пожалуйста, дайте мне знать, если мне нужно предоставить дополнительную информацию или примеры кода. Я пытался использовать то, что говорится в документации, но выдается та же ошибка. Я новичок в использовании MongoDB с Laravel, искал в Интернете и не нашел решений, которые работают.
UPDATE
Я только что переместил функцию Schema::connection('mongodb')->drop('drivers');
прямо над базой данных Schema::connection('mongodb')->create('drivers', ...
в up (), и коллекция сбрасывается. Похоже, что функция down () игнорируется.
ОБНОВЛЕНИЕ 08/11/2018
Я пытался использовать функцию dropIfExists('drivers')
, но коллекция по-прежнему не удаляется.