Archivo de la etiqueta: mysql

Cómo dividir la base de datos en Magento 2.2

Aguas divididas

Como ya sabemos, Magento Commerce (antes conocido como Enterprise), posee características que la diferencian de nuestra muy querida edición Open Source (Community Edition para los amigos).

En Magento 2 (Commerce) tenemos la posibilidad de dividir nuestra base de datos en 3, y la tienda seguirá funcionando.

Claramente, está pensado para grandes volúmenes de datos, ya que divide el catálogo y los customers de los quotes, y a su vez, de las tables sales_*.

Sigue leyendo

Depurar queries sql con printLogQuery en Magento2

Mytop

Un pequeño tip que muchas veces nos va a resultar útil, en particular cuando trabajemos con entidades EAV, será el poder obtener el query sql que Magento2 está armando para devolver los valores.

En Magento1, al tener la instancia de una colección, podíamos usar:

$collection->printLogQuery(true);

Y obteníamos el sql escrito, el cual, al probarlo directamente contra la base de datos, nos daba (o debía) el mismo resultado.

Ahora bien, ¿qué opciones tenemos disponibles en Magento2.

Sigue leyendo

Cambiar directorio de base de datos de Mysql en Ubuntu

Pequeña hoja de ruta para cuando tengamos que reubicar nuestras bases de datos en un directorio o partición o disco diferente:

1) Detenemos el servicio Mysql

sudo service mysql stop

2) Creamos la nueva ubicación

sudo cp -R /var/lib/mysql /nueva/ubicacion/de/mysql

Y borramos los archivos ib_logfile

sudo rm /nueva/ubicacion/de/mysql/ib_logfile*

Sigue leyendo

Simulando show tables y describe de Mysql en PostgreSql

Si hay algo que me toca extrañar de Mysql cuando trabajo con PostgreSql (en particular cuando estoy haciéndolo por consola y de forma remota), son los dos comandos que ayudan a armar los queries que vamos necesitando.

A pesar que desde Mysql 5 existe el catálogo con la metadata de las bases de datos, para quienes venimos desde versiones previas, el uso de funciones como show tables y describe han sido casi fundamentales al momento de trabajar con la base de datos.

Para quienes no conozcan los comandos, el primero nos lista las tablas que existen en nuestra base de datos, y el segundo, pasándole como valor el nombre de una tabla, nos muestra qué columnas tiene, con qué tipo de datos, información de los índices y algunos campos más.

Sigue leyendo

Update con Subselect en Mysql

Es posible que en algunas oportunidades necesitemos hacer una actualización a una tabla en donde la clave a utilizar en el where nos sea desconocida, y que sólo podamos obtenerla partiendo de una segunda clave en una segunda tabla.

El truco para esto es utilizar subconsultas.

Lo más probable es que al pensar en esto, escriban un ejemplo como el siguiente:

UPDATE
  tabla1
SET
  campo = 'nuevo_valor'
WHERE
  campo_de_referencia = (
    SELECT
      tabla1.valor
    FROM
      tabla1,
      tabla2
    WHERE
      tabla1.campo = 'viejo_valor'
      AND
      tabla1.clave_primaria = tabla2.clave_foranea
      AND
      tabla2.campo_de_referencia = 'otro_valor'
  )
;

Lamentablemente, esto no va a funcionar y van a obtener el siguiente error.

You can't specify target table 'tabla1' for update in FROM clause

Sigue leyendo