2017-06-16 1 views
-1

指定されたキーが長すぎるため、ラントデータベースをライブサーバーにアップロードしているようです。 SQL ERRORの例では、キーの制約が長すぎることが示されていますが、多くの場合、1つのテーブルだけではありません。これを更新したり、DBをアップロードしてアップロードする方法はありますか?私は、アプリケーションサービスプロバイダのガイドに従っていますが、私はDBをドロップしなければならない場合は、再度、アプリケーションサービスプロバイダのboot()メソッドのキー制約で移行する必要はありません。助けてください。laravel voyagerデータベースエラーのMysqlインポート - 指定されたキーが長すぎます。最大キーの長さは767バイトです

答えて

1

実際、ベンダースクリプトを使用していたため、bootメソッドにdefaultStringLengthを追加すると、VoyagerのBREADコントローラによって移行が作成されたため、移行をロールバックできませんでした。データを失うことなく、またはSequel Proや何を使用していても、手作業で行った移行やローリングを変更せずに、MYSQLのインポートを実行するには、それぞれvarchar('255')varchar('191')に手動で変更します。

これにより、削除とロールバックが不要になりました。追加

:私はBREADコントローラで作成し、他の移行がデフォルト191文字列の長さに追加されていますので

use Illuminate\Support\Facades\Schema; // add this 

Schema::defaultStringLength(191); 

をAppServiceProvider.phpには、今から動作します。参考のため

https://laravel-news.com/laravel-5-4-key-too-long-error

0

はAppServiceProvider

use Illuminate\Support\Facades\Schema; // add this 

Schema::defaultStringLength(191); 

ロールバックの移行の起動方法にdefaultStringLengthを追加して、この行を追加した後にもう一度お試しください。それが動作します。

+0

私は再びデータをアップロードした場合、それは動作しますか? – m33bo

+0

それをやり直すこと、データを再アップロードすること、そして保存されたSQL状態のために発生する同じ問題 – m33bo

+0

これまで私がこれをしていたので、正しく動作すると言えます。移行ファイルをロールバックして、もう一度やり直してください。それは新鮮なララベルセットアップですか? –

関連する問題