Cố gắng sử dụng sqlite trong môi trường phát triển. Có vẻ như để phát hiện môi trường một cách chính xác nhưng khi tôi cố gắng để di chuyển đến development.sqlite tôi nhận được ngoại lệ ném "cơ sở dữ liệu không tồn tại"môi trường phát triển laravel cơ sở dữ liệu sqlite không tồn tại
lệnh nghệ nhân
php artisan migrate --env=development
bootstrap/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' => '',
)
)
);
Theo như tôi biết laravel là nghĩa vụ phải tạo ra các tập tin nếu nó không tồn tại nhưng vì nó đã không tôi đã cố gắng tự tạo ra các tập tin và vẫn nhận được ngoại lệ ném.
CẬP NHẬT: Có thể có điều gì đó không phù hợp với env vì điều tương tự cũng xảy ra nếu tôi thử ': bộ nhớ' cho cơ sở dữ liệu.
UPDATE 2: Tôi đã cố gắng chạy thử nghiệm đơn vị mẫu nhưng thêm vào 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);
}
Và điều này quá cho cùng một ngoại lệ mặc dù env thử nghiệm đã được vận chuyển với laravel. Vì vậy, tôi sẽ xem nếu tôi có thể tìm thấy bất kỳ vấn đề mới về điều đó.
Bạn chỉ có thể thay đổi giá trị DB_DATABASE bằng .env thành đường dẫn tương đối của tệp sqlite của bạn –