Tentativo di utilizzare sqlite nell'ambiente di sviluppo. Sembra di rilevare l'ambiente in modo corretto, ma quando provo a migrare verso development.sqlite ottengo eccezione generata "database non esiste"database di sviluppo laravel database sqlite inesistente
comando artigianale
php artisan migrate --env=development
bootstrap/start.php
$env = $app->detectEnvironment(array(
'development' => array('localhost'),
));
app/config/sviluppo/database.php
<?php
return array(
'default' => 'sqlite',
'connections' => array(
'sqlite' => array(
'driver' => 'sqlite',
'database' => __DIR__.'/../database/development.sqlite',
'prefix' => '',
)
)
);
Per quanto ne so laravel dovrebbe creare il file se non esiste, ma poiché non l'ho provato ho provato a creare manualmente il file e ottenere comunque l'eccezione generata.
UPDATE: Forse qualcosa non va bene con l'env perché la stessa cosa accade se provo ': memory' per il database.
UPDATE 2: Ho provato a fare funzionare il test di unità campione, ma di aggiungere 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);
}
E anche questo dà la stessa eccezione anche se l'ENV testing è già fornito con laravel. Quindi vedrò se riesco a trovare nuovi problemi al riguardo.
È possibile solo modificare il valore DB_DATABASE in .env nel percorso relativo del file sqlite –