SQLite数据库文件不存在时迁移失败?

Bri*_*tiz 3 sqlite laravel laravel-4

当数据库文件不存在时,似乎迁移(某种程度)会无声地失败.迁移执行但没有创建db文件,我可以再次运行迁移.(它永远不会说"无需迁移")如果我创建一个空白文件,那么它可以工作.

这很奇怪,因为我认为SQLite总是创建db文件,如果没有找到,所以我不确定这是一个bug还是我做错了什么.也许这是一个权限问题?但其他一切都在运作,所以我不知道.我正在使用Windows 7,项目在我的

Dan*_*ker 16

用户blamh建议添加以下代码片段,app/start/artisan.php以便在数据库不存在时自动重新创建数据库,而不是抛出异常.

if (Config::get('database.default') === 'sqlite') {
    $path = Config::get('database.connections.sqlite.database');
    if (!file_exists($path) && is_dir(dirname($path))) {
        touch($path);
    }
}
Run Code Online (Sandbox Code Playgroud)

有了这个,您可以安全地删除SQLite数据库,然后根据需要重新迁移并重新播种它.


Dwi*_*ght 6

我已经针对laravel/framework发布了这个bug .

如果数据库不存在,或者自动创建数据库,希望未来的版本会出错.