開発環境でsqliteを使用しようとしています。私がスローされた例外がlaravel開発環境sqliteデータベースが存在しません
職人コマンド
php artisan migrate --env=development
ブートストラップ/ start.php
$env = $app->detectEnvironment(array(
'development' => array('localhost'),
));
「データベースが存在しません」を取得正しく環境を検出するようだが、私は移行しようとすると、development.sqliteします
アプリ/設定/開発/ database.phpで私の知る限りでは
<?php
return array(
'default' => 'sqlite',
'connections' => array(
'sqlite' => array(
'driver' => 'sqlite',
'database' => __DIR__.'/../database/development.sqlite',
'prefix' => '',
)
)
);
laravelはファイルが存在しない場合に作成されるはずですが、手動でファイルを作成しようとしても例外がスローされます。
UPDATE:データベースに「メモリ」を試しても同じことが起こるため、おそらくenvで正しくないものがあります。
UPDATE 2:テストENVがすでにlaravelに同梱されているが、私はサンプルユニットテストを実行しようとしたが、TestCase.php
/**
* Default preparation for each test
*
*/
public function setUp()
{
parent::setUp(); // Don't forget this!
$this->prepareForTests();
}
/**
* Creates the application.
*
* @return Symfony\Component\HttpKernel\HttpKernelInterface
*/
public function createApplication()
{
$unitTesting = true;
$testEnvironment = 'testing';
return require __DIR__.'/../../bootstrap/start.php';
}
/**
* Migrates the database and set the mailer to 'pretend'.
* This will cause the tests to run quickly.
*
*/
private function prepareForTests()
{
Artisan::call('migrate');
Mail::pretend(true);
}
そして、これに追加するには、あまりにも同じ例外を提供します。だから私はそれについて新しい問題を見つけることができるかどうかを見ます。
あなたはsqliteファイルの相対パスに.envのDB_DATABASE値を変更することができます –