Migración de campos de dirección de usuario a componentes de tipo "Address" en Strapi
Estas consultas se utilizarán para el paso de los campos de dirección de un usuario en la bbdd hacia la nueva estructura de strapi. Para ello se utilizarán dos componentes de tipo “Address” los cuales serán: “user_address” y “billing_address” para diferenciar la dirección de un usuario con la dirección de facturación del mismo. Esto se aplicará en las verticales que tienen la estructura de los usuarios anterior a esta.
Tener en cuenta que los datos de dirección de un usuario se almacena en la tablas up_users, los datos de los componentes
en las tablas components_address_user_addresses y components_address_billing_addresses, y la relación entre el usuario
y el componente asignado, se almacenará en la tabla up_users_components.
Esta consulta tiene dos partes:
1-Primera parte:
INSERT INTO components_address_user_addresses (line_1, city, postal_code, country, dni_nif)SELECT line_1, city, postal_code, country, nifFROM up_users;2-Seguna parte:
INSERT INTO up_users_components (entity_id, component_id, component_type, field)SELECT u.id, a.id, 'address.user_address', 'user_address'FROM up_users uJOIN components_address_user_addresses aON u.line_1 = a.line_1;Explicación del funcionamiendo de cada parte de la consulta:
-
Primera parte (INSERT INTO components_address_user_addresses):
- Selecciona los campos
line_1,city,postal_code,country, ydni_nifde la tablaup_users. - Inserta estos campos en la tabla
components_address_user_addresses.
- Selecciona los campos
Esta parte de la consulta copia los datos de dirección de los usuarios desde la tabla up_users a la tabla components_address_user_addresses.
-
Segunda parte (INSERT INTO up_users_components):
- Selecciona el
iddel usuario (u.id) y elidcorrespondiente de la tablacomponents_address_user_addresses(a.id). - Inserta estos valores en la tabla
up_users_components. - Realiza una operación de combinación (
JOIN) entre las tablasup_usersycomponents_address_user_addressesusando el campoline_1para relacionar los usuarios con sus direcciones.
- Selecciona el
En resumen, esta consulta copia las direcciones de los usuarios desde la tabla up_users a la tabla components_address_user_addresses y luego crea
relaciones entre los usuarios y sus direcciones en la tabla up_users_components. Sin embargo, es importante tener en cuenta que la segunda parte de
la consulta solo usa el campo line_1 para hacer la unión entre las tablas, lo que significa que solo se crearán relaciones entre usuarios y direcciones
que tengan el mismo valor en el campo line_1. Esto podría limitar la precisión de las relaciones si hay múltiples usuarios con la misma
dirección.