工匠在内存中迁移和播种sqlite,总是空的?

时间:2017-06-07 20:05:29

标签: sqlite laravel-5

我正在尝试为Laravel 5.4应用程序设置迁移和种子设定。 迁移和播种适用于mysql db。 但是当我尝试在内存db中的sqlite上运行它时,在我看来数据库仍然是空的。迁移显然已经开始,但是播种抱怨缺少桌子。

我只是在database.php中配置了sqlite

    'sqlite_memory' => [
        'driver' => 'sqlite',
        'database' => ':memory:',
        'prefix' => '',
    ],

我将默认连接设置为

'default' => env('DB_CONNECTION', 'test_sqlite'),

我已经从database.php和.env中删除了所有其他类型的连接,以防万一。

成功运行php artisan migrate后,我输入sqlite3,我只看到一个db:

Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> .database
seq  name             file                                                      
---  ---------------     
 0    main                                                                       
sqlite> .dbinfo
sqlite> .tables
sqlite> 

在我看来里面什么都没有。 如果我尝试php artisan db:seed,我会立即在任何桌面上“没有这样的表错误”..

但我确实管理了使用文件db的sqlite。 我不知道如何解决这个问题...

1 个答案:

答案 0 :(得分:0)

我相信只要当前连接打开,内存中的sqlite db就会持续。这两行“连接到瞬态内存数据库”。和'使用'。打开FILENAME“重新打开持久数据库。”建议迁移后db不再存储在内存中。