clqms-be/app/Database/Seeds/AreaGeoSeeder.php
mahdahar a2097ade6a feat: Add AreaGeoSeeder for importing geographic data from external database
- Create AreaGeoSeeder to import area geo data from external zones table
- Add field mapping: zonecode→AreaCode, zoneclass→Class, zonename→AreaName, parentzoneid→Parent
- Support same-server external databases using direct SQL queries
- Register seeder in DBSeeder for inclusion in main seeding workflow
2026-01-07 08:59:36 +07:00

43 lines
1.1 KiB
PHP

<?php
namespace App\Database\Seeds;
use CodeIgniter\Database\Seeder;
class AreaGeoSeeder extends Seeder
{
/**
* External database configuration (same server)
*/
protected string $externalDbName = 'crm_v2';
public function run()
{
// Query external database directly using database.table syntax
$externalData = $this->db->query(
"SELECT zonecode, zoneclass, zonename, parentzoneid FROM {$this->externalDbName}.zones ORDER BY zoneid ASC"
)->getResultArray();
if (empty($externalData)) {
echo "No data found in external database.\n";
return;
}
// Prepare data for insertion (exclude AreaGeoID to allow auto-increment)
$data = [];
foreach ($externalData as $row) {
$data[] = [
'AreaCode' => $row['zonecode'],
'Class' => $row['zoneclass'],
'AreaName' => $row['zonename'],
'Parent' => $row['parentzoneid'],
];
}
// Insert into local database
$this->db->table('areageo')->insertBatch($data);
echo "Successfully seeded " . count($data) . " area geo records.\n";
}
}