Varios cambios Co-authored-by: Juan Pablo Vial <jpvialb@incoviba.cl> Reviewed-on: #25
53 lines
1.4 KiB
PHP
53 lines
1.4 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use Phinx\Seed\AbstractSeed;
|
|
|
|
class Provincia extends AbstractSeed
|
|
{
|
|
public function getDependencies(): array
|
|
{
|
|
return [
|
|
'Region',
|
|
];
|
|
}
|
|
|
|
/**
|
|
* Run Method.
|
|
*
|
|
* Write your database seeder using this method.
|
|
*
|
|
* More information on writing seeders is available here:
|
|
* https://book.cakephp.org/phinx/0/en/seeding.html
|
|
*/
|
|
public function run(): void
|
|
{
|
|
$this->execute('SET unique_checks=0; SET foreign_key_checks=0;');
|
|
|
|
$table = $this->table('provincia');
|
|
$table->truncate();
|
|
|
|
$filename = implode(DIRECTORY_SEPARATOR, [getcwd(), 'resources', 'database', 'seeds', 'provincia.csv']);
|
|
$dataRows = explode(PHP_EOL, trim(file_get_contents($filename)));
|
|
$data = array_map(fn($row) => explode(';', $row), $dataRows);
|
|
$columns = array_shift($data);
|
|
$columns = array_map(function($column) {
|
|
if (str_contains($column, 'id')) {
|
|
return 'id';
|
|
}
|
|
if (str_contains($column, 'region')) {
|
|
return 'region';
|
|
}
|
|
return $column;
|
|
}, $columns);
|
|
$data = array_map(function ($row) use ($columns) {
|
|
return array_combine($columns, $row);
|
|
}, $data);
|
|
|
|
$table->insert($data)->save();
|
|
|
|
$this->execute('SET unique_checks=1; SET foreign_key_checks=1;');
|
|
}
|
|
}
|