前提・実現したいこと
Laravelでphp artisan migrate
とするとこのようなエラーがでて、解決としてこれが使えました
1071 - Specified key was too long; max key length is 767 bytes
https://qiita.com/ichi944/items/03e3bb0bbc97a965faf7
発生している問題・エラーメッセージ
このサイトでengineにinnoDBとしていると思いますがなぜこれでうまく動くようになるんでしょうか?
MySQLを使っている時点でinnoDBなのではないんでしょうか?
このサイトを読んでいるとMySQLのデフォルトデータベースエンジンはInnoDBだと書いてありました
- https://dev.mysql.com/doc/refman/5.6/ja/innodb-default-se.html#idm140037797608992
- https://mariadb.com/kb/en/library/choosing-the-right-storage-engine/#general-purpose
MySQL 5.5.5 以降、新しいテーブル用のデフォルトのストレージエンジンは InnoDB です。この変更は、新たに作成されたテーブルの中で、ENGINE=MyISAM などの句を使用してストレージエンジンが指定されていないものに適用されます。
InnoDB is a good general transaction storage engine. It is the default storage engine from MariaDB 10.2 (as well as MySQL). For earlier releases, XtraDB is a performance enhanced fork of InnoDB and is usually preferred.
Laravelのエンジンの設定が初期値のnullだった場合にはデータベースエンジンにInnoDBが使われ、インデックスキー長のエラーはそもそも発生しなかったはずではないかと思うのですが、どうしてエンジンをLaravelのオプションで明示しなければいけないのでしょうか?
試したこと
調べてみても、上のサイトと同じ解決法だけが書いてあるページしか見つけられず、なぜこれでできるのかわかりません。
フレームワーク、使用ツールのバージョン
LaravelやPHPやMySQLのバージョンはこのようになっています。
- mysql Ver 15.1 Distrib 10.2.10-MariaDB, for Win64 (AMD64)
- Laravel 5.8
- PHP 7.3.5 (cli) (built: May 1 2019 13:17:17) ( ZTS MSVC15 (Visual C++ 2017) x64 )
- Windows 10
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/03 04:28
2019/07/03 04:47