2016-04-08 4 views
-2

Мое имя таблицы customers колонка mail Я попытался с синтаксисомLaravel: Как откатить столбец уникальный

public function down() 
{ 
    Schema::table('customers', function (Blueprint $table) { 
     $table->dropUnique('mail'); 
     $table->string('mail',255)->change(); 
     $table->string('first_name',255)->change(); 
     $table->string('first_name_reading',255)->change(); 
     $table->string('last_name',255)->change(); 
     $table->string('platform',255)->change(); 
    }); 
} 

Но это не работает.

[Illuminate\Database\QueryException] 
    SQLSTATE[42000]: Syntax error or access violation: 1091 Can't DROP 'mail'; check that column/key exists (SQL: alter 
    table `customers` drop index `mail`) 

Можете ли вы мне помочь? Пожалуйста,

+1

Это должно работать, но вы должны показать нам полную функцию 'down()' migration и полученное сообщение об ошибке. Подумайте также о том, чтобы посмотреть в базе данных, чтобы увидеть, есть ли у вас * уникальный ключ и что он называется. – ceejayoz

+0

1091 Невозможно DROP 'mail'; проверьте, что столбец/ключ существует (SQL: alter таблица 'clients' drop index' mail') –

+1

Ну, индекс не существует с именем 'mail'. Исходным кодом в вопросе было правильное имя - '$ table-> dropUnique ('customers_mail_unique');'. – ceejayoz

ответ

1

Открыть MySQL консоли и получить правильный индекс имя ключа для таблицы клиентов и использовать его с кодом $table->dropUnique('correct_name');

SHOW INDEX FROM customers; 
+0

1091 Невозможно DROP 'mail'; проверьте, что столбец/ключ существует (SQL: alter Таблица 'customers' drop index' mail') –

+1

Это должно быть '$ table-> dropUnique ('customers_mail_unique')'. –

+0

[PDOException] SQLSTATE [42000]: Ошибка синтаксиса или нарушение доступа: 1091 Невозможно DROP 'customers_mail_unique'; проверьте, что столбец/ ключ существует –

2

Даже смешнее, вы можете передать параметр массива в функции dropUnique и Laravel будет генерировать правильное имя для вас. Попробуйте следующее: $table->dropUnique(['mail']).

Ссылка the manual.

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