Je travaille sur certaines migrations de base de données dans Laravel 5.4. Les migrations fonctionnent correctement avec une base de données MySQL, mais pour tester, je veux utiliser SQLite mais la migration échoue. Voici le codeSQLite ne crée pas d'index
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']);
});
}
Quand je lance php artisan migrate
l'index sur la colonne mapped_teams.team
n'est pas créée, mais celui sur mapped_venues.venue
est !!
$ 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>
J'ai aussi essayé de créer des index sur un appel séparé
Schema::table('mapped_venues', function (Blueprint $table) {
$table->index(['venue']);
});
Schema::table('mapped_teams', function (Blueprint $table) {
$table->index(['team']);
});
Mais le résultat est le même. Fait intéressant cependant, quand (par erreur) j'ai quitté la création de l'index $table->index['team'])
à l'intérieur de l'appel pour créer la table (donc, j'ai deux appels pour créer l'index) J'ai l'erreur que l'indice existe déjà.
J'utilise:
- Laravel 5.4.36
- Doctrine Dbal 2.6.2
- SQLite 3.19.3
Merci @ inet123, c'était juste une faute de frappe sur la question. Le code actuel est correct. J'ai édité la question cependant. – giuliot