[Laavel 5.1] 마이그레이션에서 색인을 만들거나 제거하는 중 오류 발생

5623 단어 Laravellaravel5.1

개시하다



라벨의 마이그레이션부터 열에 색인을 설정하거나 삭제할 때 빠져든다.
[PDOException]
SQLSTATE[42000]: Syntax error or access violation: 1091 Can't DROP '(index_column)'; check that column/key exists
이런 느낌의 착오가 생기다.
등등.분명히왜 없지?
이렇게 하는 거야.

코드


(migrationfile).php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class MigrationFile extends Migration
{

    public $tableName = 'sample_table';
    public $connect   = 'mysql_test';

    public function up() {

        Schema::connection($this->connect)->table($this->tableName, function(Blueprint $table) {
            $indexes = \DB::connection($this->connect)->select(\DB::raw("SHOW INDEX FROM {$this->tableName};"));

            // インデックス削除
            $key = 'index_1';
            if ($this->hasIndex($indexes, $key))
            {
                $table->dropIndex([$key]);
            }

            // インデックス作成
            $key = 'index_2';
            if (!$this->hasIndex($indexes, $key))
            {
                $table->index($key);
            }

        });
    }

    public function down() {

    }

    /**
     * hasIndex
     * @parameter : indexes as object, $key as string
     * @return    : true or false
     **/
    private function hasIndex($indexes, $key) {
        foreach ($indexes as $index) {
            if ($index->Column_name == $key)
            {
                return true;
            }
        }
        return false;
    }

감상


이런 느낌?

좋은 웹페이지 즐겨찾기