2016-02-17 2 views
12

Я использую код ниже в Schema Builder для создания таблицы.Schema Builder: создать таблицу, если она не существует

Schema::create('tblCategory', function (Blueprint $table) { 
    $table->increments('CategoryID'); 
    $table->string('Category', 40); 
    $table->unique('Category', 'tblCategory_UK_Category'); 
    $table->timestamps(); 
}); 

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

Есть ли способ создать таблицу, если она не существует с помощью Schema builder?

+0

Вы даже используете встроенный инструмент миграции laravels? – Morten

+0

да, версия 5.2.15. – Pankaj

+0

И вы запускаете 'php artisan migrate'? Если файл был успешно запущен, он должен сохранить это в базе данных, чтобы он снова не запускал файл. – Morten

ответ

25

Попробуйте

if (!Schema::hasTable('tblCategory')) { 
    // create the tblCategory table 
} 
+2

Вы также можете сделать 'if (Schema :: hasTable ('tblCategory')) {return; } 'перед добавлением. –

2

Please check the answer here

Чтобы создать новую таблицу есть только одна проверка функции Laravel схемы hasTable.

Но если вы хотите удалить любую таблицу, прежде чем проверять ее существование, тогда у Схемы есть функция, которая называется dropIfExists.

Schema::dropIfExists('table_name'); 

Он упадет из таблицы, если стол будет существовать.

Смежные вопросы