[PHP] LaravelでDBをいじってみる

PHP
普段ならDBにデータを入れる時はインサート文を作成してましたが、PHPのFWであるLaravelでseedファイルを使って入れるという案件の時のメモ。 seedファイルを作ればいいじゃんって話なんですが、数個のデータならそれでいいですが、100・・・・・・個もあるとなかなか骨が折れる作業かと思います。
そんな時に自分は、Excelのマクロを組んでバルクインサート文を作り、ローカルDBにデータを入れてからseedファイルを作りました。
環境
Windows 10
PHP ^7.2
Laravel ^6.0

DBからseedファイルの作成

composer require --dev "orangehill/iseed"
上記コマンドを実行。しかし、メモリがなんちゃらと怒られるときがある。
PHP Fatal error:  Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/bin/composer/src/Composer/DependencyResolver/Solver.php on line 223

Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/bin/composer/src/Composer/DependencyResolver/Solver.php on line 223
こんな感じで怒られたら
php -r "echo ini_get('memory_limit').PHP_EOL;"
で調べる。256Mとか出たらメモリが足らないのでiniファイルを修正。
sudo vi /etc/php.ini
memory_limit = 256M の部分を変更
memory_limit = -1 に変更。もう一回実行。
composer require --dev "orangehill/iseed"
成功したら256Mに戻してみる config/app.phpproviders に以下を追記する。
Orangehill\Iseed\IseedServiceProvider::class
ここまでで準備は完了。DBにちゃんと繋げられる状態ならばiseedを実行する。
$ php artisan iseed テーブル名 
実行し、seedファイルが生成されているのが確認できたらseedを実行してデータ投入が出来るか確認する。
php artisan --env=local db:seed --class=テーブル名Seeder
これでデータがちゃんと入っていたらとりあえず完了。

コメント

タイトルとURLをコピーしました