74 lines
2.1 KiB
PHP
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);
|
|
}
|
|
}
|