Meine Komponententests begannen vor kurzem zu scheitern. Ich erhalte diese Fehlermeldung:Laravel-Tabelle * hat keine Spalte mit dem Namen *
PDOException: SQLSTATE[HY000]:
General error: 1 table loan_details has no column named start_month
Die Linie, wo es passiert ist, habe ich diesen Code haben:
$loan = LoanDetails::create(['loan_percentage' => .8,
'loan_product_id' => 1,
'interest_rate' => .5,
'start_month' => 0,
'term' => 120,
'fixed_finance_fee' => 0,
'variable_finance_Fee' => 0,
'valid_from' => '2015-01-01'
]);
Wenn ich die „start_month“ Zeile aus kommentieren es dann logisch funktioniert.
Im Setup meiner Unit Tests laufe ich alle Migrationen (ca. 80).
Ich habe eine Migration, die wie folgt aussieht:
Schema::table('loan_details', function(Blueprint $table){
$table->integer('start_month')->unsigned()->after('interest_only')->default(0);
$table->decimal('balloon_percent',4,3)->after('term')->nullable();
$table->integer('balloon_month')->after('balloon_percent')->nullable();
$table->dropColumn('ordinal_rank');
});
Also, ich fragte mich, ob alle Migrationen nicht ausgeführt wurden, so lief ich diesen Code:
$rows = DB::table('migrations')->get();
print_r($rows);
Diese alle Listen Migrationen als abgeschlossen. Ich benutze eine im Speicher SQLite db für die Tests.
Ich frage mich, ob die Migrationen asynchron ausgeführt werden und sie nicht alle zu der Zeit fertig sind, die mein Code ausgeführt wird? Oder wenn die Migrationen irgendwo scheitern?
Ich bin seit Stunden hier und weiß nicht, was passiert.
* UPDATE Ich habe eine Migration, die NACH der obigen Migration ausgeführt wird, und ich bestätigte, dass die nachfolgende Migration erfolgreich war. Es ist also nur diese eine Migration, die auf irgendeine Art stillschweigend versagt.
Sehen Sie die Migration, die die Spalte in der Liste der Migrationen hinzugefügt wird? –
Ja, ich listet alle auf, einschließlich der, die ich erwarte. – ajon
Und sehen Sie diese Spalte in der Datenbank? Wenn bei der Migration ein Fehler aufgetreten ist, wird dieser möglicherweise in der Migrationstabelle gespeichert, obwohl er nicht abgeschlossen wurde. –