開発環境でsqliteを使おうとしています。環境を正しく検出しているようですが、 development.sqlite に移行しようとすると、「データベースが存在しません」という例外がスローされます
職人の命令
php artisan migrate --env=development
ブートストラップ/start.php
$env = $app->detectEnvironment(array(
'development' => array('localhost'),
));
app/config/development/database.php
<?php
return array(
'default' => 'sqlite',
'connections' => array(
'sqlite' => array(
'driver' => 'sqlite',
'database' => __DIR__.'/../database/development.sqlite',
'prefix' => '',
)
)
);
私の知る限り、ファイルが存在しない場合、laravelはファイルを作成するはずですが、そうではなかったので、手動でファイルを作成しようとしましたが、それでも例外がスローされます。
更新:データベースに「:memory」を試しても同じことが起こるため、環境に問題がある可能性があります。
更新 2: サンプルの単体テストを実行してみましたが、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);
}
テスト環境はすでにlaravelに同梱されていますが、これも同じ例外を与えます。そのため、新しい問題が見つかるかどうかを確認します。