sql >> Database teknologi >  >> RDS >> Sqlserver

Doktrine 2:Kan ikke opdatere kolonnen DateTime på SQL Server 2008apm

Jeg stødte på dette problem med Doctrine 2.5 og SQL Server 2012. Problemet er, at databasefeltet er typen DATETIME , men doctirne understøtter kun DATETIME2 på SQLServer2008Platform og opefter.

Du bør ikke redigere filer i dit leverandørbibliotek. Det korrekte svar er at oprette en brugerdefineret type:Doktrine tilpassede kortlægningstyper . I mit tilfælde udvidede jeg den nuværende DateTimeType:

<?php

namespace AppBundle\Doctrine\Type;

use Doctrine\DBAL\Types\DateTimeType;
use Doctrine\DBAL\Platforms\AbstractPlatform;

class DateTime extends DateTimeType
{
    private $dateTimeFormatString = 'Y-m-d H:i:s.000';

    public function convertToDatabaseValue($value, AbstractPlatform $platform)
    {
        return ($value !== null)
            ? $value->format($this->dateTimeFormatString) : null;
    }

}

Og så i Symfony config.yml:

    types:
      datetime: AppBundle\Doctrine\Type\DateTime


  1. Hvilken bruger skal eje /usr/local/mysql på Mac?

  2. Jeg har brug for at auto_incremente et felt i MySQL, der ikke er primær nøgle

  3. Kør rails-kode efter en opdatering til databasen er commitet, uden after_commit

  4. Hvordan tillader jeg kun adgang til min MySQL-database fra min iOS-app? (Brug af webapp som gateway til db)