sekolah_adiwiyata/database/seeders/UpdateDatabaseSekolahSeeder...

74 lines
2.1 KiB
PHP

<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class UpdateDatabaseSekolahSeeder extends Seeder
{
public function run()
{
DB::disableQueryLog();
$path = database_path('seeders/datasekolahlatlong.csv');
$file = fopen($path, 'r');
$header = fgetcsv($file, 10000, ";");
$rows = [];
while (($row = fgetcsv($file, 10000, ";")) !== false) {
$data = array_combine($header, $row);
DB::table('ms_sekolah')
->where('npsn', $data['npsn'])
->update([
'lat' => $data['lat'],
'long' => $data['long'],
'rt' => $data['rt'],
'rw' => $data['rw'],
'kode_kelurahan' => $data['kode_kelurahan'],
'alamat_sekolah' => $data['alamat_sekolah'],
]);
// $rows[] = [
// 'npsn' => $data['npsn'],
// 'lat' => $data['lat'],
// 'long' => $data['long'],
// 'rt' => $data['rt'],
// 'rw' => $data['rw'],
// 'kode_kelurahan' => $data['kode_kelurahan'],
// 'alamat_sekolah' => $data['alamat_sekolah'] ?? null,
// ];
// // batch 500
// if (count($rows) >= 500) {
// DB::table('ms_sekolah')->upsert(
// $rows,
// ['npsn'], // unique key
// ['lat', 'long', 'alamat_sekolah','rt','rw','kode_kelurahan'] // kolom yg diupdate
// );
// $rows = [];
// }
}
// sisa data
// if (!empty($rows)) {
// DB::table('ms_sekolah')->upsert(
// $rows,
// ['npsn'],
// ['lat', 'long', 'alamat_sekolah','rt','rw','kode_kelurahan']
// );
// }
fclose($file);
}
}