2017-07-31 5 views
1

私はphp artisan migrateコマンドを実行しようとしていますが、ユニーク、インデックスなどのすべての制約に対して構文エラーが発生しています。投稿されたエラーはデフォルトで変更されていませんcreate_users_tableプロセス。この一意制約を電子メール列から削除すると、次の移行で別の制約に対して同じエラーが発生します。私は、エラーメッセージに表示されている「ユニークなデバイス」に間違いがあると思います。それは '一意に追加'する必要があります。Laravel移行制約の構文エラー

エラー

[Illuminate\Database\QueryException] 
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in 
your SQL syntax; check the manual that corresponds to your MySQL server version for 
the right syntax to use near 'devices unique `users_email_unique`(`email`)' 
at line 1 (SQL: alter table `users` devices unique `users_email_unique`(`email`)) 


[PDOException] 
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in 
your SQL syntax; check the manual that corresponds to your MySQL server 
version for the right syntax to use near 'devices unique 
`users_email_unique`(`email`)' at line 1 

移行

Schema::create('users', function (Blueprint $table) { 
    $table->increments('id'); 
    $table->string('name'); 
    $table->string('email')->unique(); 
    $table->string('password'); 
    $table->rememberToken(); 
    $table->timestamps(); 
}); 

.env

APP_NAME=Project 
APP_ENV=local 
APP_KEY=base64:jRIQ9RxhMYRK9UJXgme1KlA6bd1rA0OGyK96SdBP1nI= 
APP_DEBUG=true 
APP_LOG_LEVEL=debug 
APP_URL=http://project.dev 

DB_CONNECTION=mysql 
DB_HOST=127.0.0.1 
DB_PORT=3306 
DB_DATABASE=project 
DB_USERNAME=homestead 
DB_PASSWORD=secret 

BROADCAST_DRIVER=log 
CACHE_DRIVER=file 
SESSION_DRIVER=file 
QUEUE_DRIVER=sync 

REDIS_HOST=127.0.0.1 
REDIS_PASSWORD=null 
REDIS_PORT=6379 

MAIL_DRIVER=smtp 
MAIL_HOST=smtp.mailtrap.io 
MAIL_PORT=2525 
MAIL_USERNAME=null 
MAIL_PASSWORD=null 
MAIL_ENCRYPTION=null 

PUSHER_APP_ID= 
PUSHER_APP_KEY= 
PUSHER_APP_SECRET= 

助けてくれてありがとう。

+0

エラーメッセージの画像を投稿しないでください。エラーメッセージをテキストとして完全に投稿してください。また、あなたのコードを表示します。 – klutt

+0

申し訳ありませんが、私は自分の投稿を正しく編集しました。 –

答えて

0

>それは255文字varchar型の一意のスッポないRTは、あなただけのメールのみを宣言するだけで50文字

$卓上ので、文字列( 'メール'、50)、これを試してください - >ユニーク( );

+0

ありがとうございますが、私はまったく同じエラーが再び発生しています。一意制約を完全に削除すると、laravel create_password_resets_tableの次回の移行時にインデックス制約に非常に似たエラーが発生します。このインデックスを削除すると、次回の移行時に次のユニークなエラーが発生します。 –

+0

私はあなたの.envを見ることができます –

+0

確かに、最初の投稿/質問に.envを追加しました。 –

関連する問題