addresses: add constraint in database to avoid error later

This commit is contained in:
Julien Fastré 2022-04-14 01:11:39 +02:00
parent a52f29bb78
commit afa38e9dd5
3 changed files with 54 additions and 0 deletions

View File

@ -140,6 +140,7 @@ class Address
/**
* @ORM\ManyToOne(targetEntity="Chill\MainBundle\Entity\PostalCode")
* @ORM\JoinColumn(nullable=false)
* @Groups({"write"})
*/
private ?PostalCode $postcode = null;

View File

@ -0,0 +1,27 @@
<?php
declare(strict_types=1);
namespace Chill\Migrations\Main;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
final class Version20220413225830 extends AbstractMigration
{
public function getDescription(): string
{
return 'Set postal code in chill_main_address NOT NULL';
}
public function up(Schema $schema): void
{
$this->addSql('ALTER TABLE chill_main_address ALTER COLUMN postcode_id SET NOT NULL');
}
public function down(Schema $schema): void
{
$this->addSql('ALTER TABLE chill_main_address ALTER COLUMN postcode_id DROP NOT NULL');
}
}

View File

@ -0,0 +1,26 @@
<?php
declare(strict_types=1);
namespace Chill\Migrations\Main;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
final class Version20220413230159 extends AbstractMigration
{
public function getDescription(): string
{
return 'in addresses, validfrom must be lower than validto';
}
public function up(Schema $schema): void
{
$this->addSql('ALTER TABLE chill_main_address ADD CONSTRAINT chill_custom_validfrom_before_validto CHECK (validfrom <= COALESCE(validto, \'infinity\'::date))');
}
public function down(Schema $schema): void
{
$this->addSql('ALTER TABLE chill_main_address DROP CONSTRAINT chill_custom_validfrom_before_validto');
}
}