私のユニットテストは最近失敗し始めました。私はこのエラーを取得しています:私はその後、「start_month」行をコメントアウトした場合Laravelテーブル*に名前の列がありません。*
$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'
]);
が、それは論理的に動作します:
PDOException: SQLSTATE[HY000]:
General error: 1 table loan_details has no column named start_month
それが起こっているライン、私はこのコードを持っています。
ユニットテストの設定では、すべての移行(約80回)を実行します。これは、のすべてを一覧表示
$rows = DB::table('migrations')->get();
print_r($rows);
:
私はこのようになり、移行があります。すべての移行は、私はこのコードを実行したので、実行していなかったのであれば
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');
});
を、私は疑問に思いました移行が完了したことを示します。私はテストのためのメモリsqliteのDBを使用しています。
マイグレーションが非同期で実行され、コードが実行されるまでにすべてが完了していないのではないかと思いますか?または、移行がどこかで黙って失敗している場合ですか?
私は何時間もこのことをしており、何が起こっているのか分かりません。
*更新私は上記の移行の後に実行される移行を行っており、その後の移行が成功したことを確認しました。したがって、何らかの方法で黙って失敗しているのは、この1回の移行だけです。
マイグレーションの一覧に列が追加されているのが見えますか? –
はい、私は期待しているものを含め、それらのすべてをリストアップしています。 – ajon
そしてその列はデータベースに表示されますか?移行の実行中にエラーが発生した場合、移行が完了していない場合でも移行テーブルに保存される可能性があります。 –