我正在Laravel 5.4中進行一些數據庫遷移。遷移工作正常與MySQL數據庫,但爲了測試我想使用SQLite但遷移失敗。下面的代碼SQLite不會創建索引
public function up()
{
Schema::create('mapped_venues', function (Blueprint $table) {
$table->increments('id');
$table->unsignedInteger('upload_job_id')->nullable();
$table->string('venue')->default('');
$table->unsignedInteger('venue_id')->nullable();
$table->timestamps();
$table->index(['venue']);
});
Schema::create('mapped_teams', function (Blueprint $table) {
$table->increments('id');
$table->unsignedInteger('upload_job_id')->nullable();
$table->string('team')->default('');
$table->unsignedInteger('team_id')->nullable();
$table->timestamps();
$table->index(['team']);
});
}
當我運行php artisan migrate
沒有建立在mapped_teams.team
列的索引,但mapped_venues.venue
的一個!
$ sqlite3 database/database.sqlite
SQLite version 3.19.3 2017-06-08 14:26:16
Enter ".help" for usage hints.
sqlite> .indexes mapped_teams
sqlite> .indexes mapped_venues
mapped_venues_venue_index
sqlite>
我也試圖在一個單獨的呼叫
Schema::table('mapped_venues', function (Blueprint $table) {
$table->index(['venue']);
});
Schema::table('mapped_teams', function (Blueprint $table) {
$table->index(['team']);
});
創建索引但結果是一樣的。有趣的是,當(由於錯誤)我創建索引$table->index['team'])
創建表(所以,我有兩個調用來創建索引),我得到的索引mapped_teams_team_index
已經存在的錯誤。
我使用:
- Laravel 36年5月4日
- 主義DBAL 2.6.2
- SQLite的3.19.3
謝謝@ inet123,這只是一個打字錯誤的問題。實際的代碼很好。儘管我已經編輯了這個問題。 – giuliot