я создал пользовательский тип доктрины, как сказано в http://doctrine-orm.readthedocs.org/en/latest/cookbook/working-with-datetime.htmlSymfony2 Doctrine пользовательские типы генерации ненужные миграции
Вот код:
<?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;
}
}
Проблема заключается в том, когда я бегу app/console doctrine:migrations:diff
он всегда будет генерировать новые миграции даже если я переместился, и контент всегда один и тот же. Пример:
$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');
Примечание: добавление 'requireSQLCommentHint' не решит проблему автоматически. 'Diff' будет игнорировать изменение. ** Вам нужно будет добавить комментарий вручную. ** Я создал билет для этого: http://www.doctrine-project.org/jira/browse/DBAL-1193 – vbence
Ссылка @vbence сломана, вы знаете, если это исправлена ошибка? – josecelano
@vence как я могу «добавить комментарий вручную»? Я имею в виду, какой текст мне нужно добавить в комментарий? – josecelano