<?php declare(strict_types=1); /* * This file is part of contao-weinanlieferung-bundle. * * (c) vonRotenberg * * @license commercial */ namespace vonRotenberg\WeinanlieferungBundle\Migration; use Contao\CoreBundle\Migration\AbstractMigration; use Contao\CoreBundle\Migration\MigrationResult; use Doctrine\DBAL\Connection; class RebsortenMigration extends AbstractMigration { /** @var Connection */ private $db; public function __construct(Connection $db) { $this->db = $db; } public function shouldRun(): bool { $schemaManager = $this->db->createSchemaManager(); // If the database table itself does not exist we should do nothing if (!$schemaManager->tablesExist(['tl_vr_wa_rebsorte'])) { return false; } $columns = $schemaManager->listTableColumns('tl_vr_wa_rebsorte'); $isPopulated = (bool) $this->db->executeQuery("SELECT count(id) FROM tl_vr_wa_rebsorte")->fetchOne(); return !$isPopulated && isset($columns['title']); } public function run(): MigrationResult { $time = time(); $arrRebsorten = [ ['title' => 'Cabernet'], ['title' => 'Cabernet Dorsa'], ['title' => 'Chardonnay'], ['title' => 'Cuveé'], ['title' => 'Gewürztraminer'], ['title' => 'Grauer Burgunder'], ['title' => 'Grüner Silvaner'], ['title' => 'Klingelberger (Riesling)'], ['title' => 'Merlot'], ['title' => 'Müller-Thurgau'], ['title' => 'Muskateller'], ['title' => 'Räuschling'], ['title' => 'Regent'], ['title' => 'Riesling'], ['title' => 'Rivaner'], ['title' => 'Rotwein Cuvée'], ['title' => 'Ruländer'], ['title' => 'Sauvignon Blanc'], ['title' => 'Sauvitage'], ['title' => 'Scheurebe'], ['title' => 'Silvaner'], ['title' => 'Spätburgunder'], ['title' => 'Syrah'], ['title' => 'Traminer'], ['title' => 'Viognier'], ['title' => 'Weißer Burgunder'], ['title' => 'Weißwein Cuvée'], ]; for ($i = 0; $i < count($arrRebsorten); $i++) { $this->db->insert('tl_vr_wa_rebsorte',array_merge($arrRebsorten[$i],['tstamp'=>$time])); } return $this->createResult(true,'Inserted ' . $i . ' grape varieties.'); } }