Laravel 5.4アプリケーションの移行とシード設定を設定しようとしています。 mysql dbの移行とシード処理が動作しています。 しかし、メモリDB内のsqlite上で実行しようとすると、dbが空のままになっているように思えます。明らかに移行は実行されますが、シード処理はテーブルの欠落について不平を言う。職人のマイグレーションとメモリ内のsqliteへのシードは、常に空ですか?
私は単にdatabase.phpで
'sqlite_memory' => [
'driver' => 'sqlite',
'database' => ':memory:',
'prefix' => '',
],
にこのようsqliteのを構成し、私は私がdatabase.phpでと.envからの接続の他のすべての種類を排除していた
'default' => env('DB_CONNECTION', 'test_sqlite'),
としての私のデフォルトの接続を設定します、 念のため。
正常にPHPの職人の移行を実行した後、私は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を動作させることはできました。 これを解決する方法がわかりません...
@btl、あなたは正しい、今私は理解する。私はphpunitのテストのためにやっていました。私がテストセットアップから移行してシードすると、うまくいくように思えます...私はそれをaswerとして受け入れます... – Glasnhost