ho creato un tipo di dottrina personalizzato come detto in http://doctrine-orm.readthedocs.org/en/latest/cookbook/working-with-datetime.htmlSymfony2 Dottrina tipi personalizzati che generano migrazioni non necessari
Ecco il codice:
<?php
namespace XXX\Bundle\XXXBundle\Doctrine\Type;
use Doctrine\DBAL\Platforms\AbstractPlatform;
use Doctrine\DBAL\Types\ConversionException;
use Doctrine\DBAL\Types\DateTimeType;
class UTCDateTimeType extends DateTimeType
{
static private $utc = null;
public function convertToDatabaseValue($value, AbstractPlatform $platform)
{
if ($value === null) {
return null;
}
$value->setTimezone(new \DateTimeZone('UTC'));
$dbDate = $value->format($platform->getDateTimeFormatString());
return $dbDate;
}
public function convertToPHPValue($value, AbstractPlatform $platform)
{
if ($value === null) {
return null;
}
$val = \DateTime::createFromFormat(
$platform->getDateTimeFormatString(),
$value,
(self::$utc) ? self::$utc : (self::$utc = new \DateTimeZone('UTC'))
);
if (!$val) {
throw ConversionException::conversionFailed($value, $this->getName());
}
return $val;
}
}
Il problema è quando ho eseguito app/console doctrine:migrations:diff
sempre genererà nuove migrazioni anche se sono migrato e il contenuto è sempre lo stesso. Esempio:
$this->addSql('ALTER TABLE Availability CHANGE start start DATETIME NOT NULL, CHANGE end end DATETIME NOT NULL, CHANGE rrule rrule LONGTEXT DEFAULT NULL, CHANGE created created DATETIME NOT NULL, CHANGE updated updated DATETIME NOT NULL');
Nota: l'aggiunta di 'requireSQLCommentHint' non risolverà il problema automaticamente. 'Diff' ignorerà il cambiamento. ** Dovrai aggiungere il commento manualmente. ** Ho creato un ticket per questo: http://www.doctrine-project.org/jira/browse/DBAL-1193 – vbence
@vbence link è rotto sai se questo bug è stato risolto? – josecelano
@vence come posso "aggiungere manualmente il commento"? Voglio dire, quale testo devo inserire nel commento? – josecelano