Doctrine ORM: Excepción “Duplicate entry ‘2147483647’”

Estaba guardando IDs de perfiles de Facebook y Twitter cuando me apareció este error:

  [Doctrine\DBAL\Driver\PDOException]
  SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '2147
  483647' for key 'PRIMARY'

  [PDOException]
  SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '2147
  483647' for key 'PRIMARY'

Volví a mirar los datos de IDs que tenía y ninguno tenía el valor 2147483647. Entonces me dí cuenta de que el valor 2147483647 es el máximo valor que se puede guardar con un tipo de dato integer en Doctrine con MySQL. Así que con tan solo cambiar integer por bigint en la entidad se resolvió el problema.

class TwitterProfile
{
    /**
     * @ORM\Id
     * @ORM\Column(type="bigint")
     */
    protected $id;
    ...
}

doctrine-mysql-duplicate-entry-2147483647

Doctrine ORM: Exception “Duplicate entry ‘2147483647’”

I was storing Facebook and Twitter profile IDs and I got this error:

  [Doctrine\DBAL\Driver\PDOException]
  SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '2147
  483647' for key 'PRIMARY'

  [PDOException]
  SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '2147
  483647' for key 'PRIMARY'

When I went back to my data there was no ID with 2147483647 value. Then I realized that 2147483647 is the maximun value you can store in MySQL with a Doctrine integer type. So I just changed integer to bigint in my entities and the problem was solved.

class TwitterProfile
{
    /**
     * @ORM\Id
     * @ORM\Column(type="bigint")
     */
    protected $id;
    ...
}

doctrine-mysql-duplicate-entry-2147483647

Limpiar la cache DNS interna de Google Chrome

Estaba moviendo la web de un cliente de un hosting a otro cuando después de comprobar que los registros DNS ya estaban actualizados a la nueva IP vi que Chrome seguía intentando acceder a la IP antigua. Di por hecho que Google Chrome tiene algún tipo de cache para los DNS, y vaya si lo tiene. Para limpiarla hay que ir a la siguiente dirección chrome://net-internals/#dns y pulsar en “Clear host cache”.

google-chrome-dns-cache

Ref: http://superuser.com/questions/203674/how-to-clear-flush-the-dns-cache-in-google-chrome

Clear internal DNS cache in Google Chrome

I was moving a client’s web from one hosting to another and after checking that the DNS registers have already been updated I could load the page on the new server in Chrome. It was like still trying to reach the old IP. Then I assumed Chrome has some kind of DNS cache, and sure it does. If you want to clear it open chrome://net-internals/#dns and press “Clear host cache”.

google-chrome-dns-cache

Ref: http://superuser.com/questions/203674/how-to-clear-flush-the-dns-cache-in-google-chrome

Cambiar entre diferentes versiones de PHP en Apache con Mac Ports

Si tienes por ejemplo 2 versiones diferentes de PHP en la misma máquina puede cambiar entre ellas usando APache eXtenSion tool:

Por ejemplo para activar PHP 5.4:

cd /opt/local/apache2/modules
sudo /opt/local/apache2/bin/apxs -a -e -n php5 mod_php54.so

Y para activar PHP 5.6:

cd /opt/local/apache2/modules
sudo /opt/local/apache2/bin/apxs -a -e -n php5 mod_php56.so

apache_logo