Convierta una base de datos de producción en datos de prueba
15
Cuanto más cerca esté una prueba de la producción, mejor puede emular el comportamiento de producción. Me gustaría copiar las copias de seguridad de la base de datos de la producción en nuestros entornos de prueba, pero ¿qué necesito cambiar para que la prueba funcione y evitar interferir con la producción o enviar por correo electrónico accidentalmente a clientes reales (además de configurar web/%secure/base_urlcon la URL de prueba)?
Otra forma de pensar sobre esta pregunta sería considerar cómo generar algo como Magento Sample Data a partir de mis propios datos de producción.
También core_url_rewritese puede importar solo con la estructura y ejecutar una URL de catálogo Reescribe reindexar después de la importación, a menos que necesite todos esos registros (para varias pruebas).
También puede limpiar los carros abandonados (pista:) sales_flat_quote, también puede eliminar pedidos si no los necesita y mantener un número limitado
2) Configuraciones de configuración
web / (no seguro | seguro) / base_url
direcciones de correo electrónico de contacto
deshabilite el correo electrónico ( system/smtp/disable) para que no envíe correos electrónicos por error
Para desarrolladores, ignorar el contenido de algunas tablas está bien. Para QA / Staging, querrá que todas esas tablas se llenen para reflejar la producción lo más cerca posible.
beeplogic
@FlorinelChris: Pensé que la pregunta era sobre simplificar la migración de db y no hacerla tan compleja :) Bu de ninguna manera, ¡buena respuesta!
user487772
@Tim la parte difícil es poner todo lo anterior en un script ... ejecutarlo después es la solución simple.
FlorinelChis
2
Escribimos un script para manejar los volcados de DB para ramificar. Lee este artículo .
El principio básico es que lee local.xmlpara obtener las credenciales de la base de datos, luego volca los datos sobre esa base. Divide el volcado en dos partes, solo la estructura y luego los datos. Pero la clave es que acelera el proceso de volcado convencional al omitir datos no esenciales y evita de manera crítica cualquier bloqueo de tabla durante el volcado que de otro modo bloquearía / colgaría su sitio en vivo.
Cuando tenga el volcado de MySQL, puede cambiar la URL muy fácilmente simplemente usando sed
sed -i 's/www.mydomain.com/staging.mydomain.com/g'./var/db.sql
Luego ejecute una importación mysql en su nueva base de datos.
Entonces, sin el script, una versión muy básica se vería así.
mysqldump -hHostname -uUsername LiveDbname-p > db.sql
sed -i 's/www.mydomain.com/staging.mydomain.com/g' db.sql
mysql -hHostname -uUsername DevDbname-p < db.sql
No hay ninguna razón para tener que eliminar el archivo local.xml o volver a ejecutar el instalador si cambia las URL en la base de datos de esta manera.
Todo el proceso de ramificación está bien cubierto en nuestra Guía Magento GIT . Este es un buen proceso para crear ramas de desarrollo, pero reduce el DB en vivo por un margen significativo. Por lo tanto, las pruebas no serán completamente las mismas que en el sitio en vivo.
Por lo tanto, realizar un volcado de DB de vainilla, reemplazar sed, importar DB es suficiente para un sitio de preparación. Y reflejará / coincidirá el sitio en vivo lo más cerca posible.
En términos de evitar las comunicaciones con los clientes, nunca lo hemos considerado una necesidad, ya que siempre creamos cuentas deliberadamente para las pruebas, nunca utilizamos pedidos reales de los clientes para las pruebas.
Una opción para el problema del correo electrónico es configurar su sitio de desarrollo para redirigir TODOS los correos electrónicos hacia usted. Añade un poco de tranquilidad.
La forma en que lo haga depende de su entorno; para nosotros, agregar esto al servidor virtual hace el trabajo:
Pero supongamos que le digo a mi sistema de prueba que envié un pedido, ¿no enviaría un correo electrónico al cliente real al respecto?
kojiro
Los únicos otros elementos que deben cambiarse son la información de registro del módulo de terceros si está ejecutando claves que son por dominio en lugar de ser solo claves de activación. También incluyo direcciones de correo electrónico para que el pedido de prueba transaccional vaya a una cuenta de prueba en lugar del mostrador de pedidos. Cuando comienzas por primera vez, todo lo que necesitas son basesUrls seguras y no seguras. Si planea hacer esto a menudo, empaquételo todo en un archivo sql e impórtelo después de su importación magento db.
Fiasco Labs
@kojiro: no si configura algunas cuentas de prueba. Hable con el administrador de correo electrónico de su empresa, pídales que configuren un par de alias de correo electrónico.
Fiasco Labs
@FiascoLabs Estoy confundido. En este escenario, acabo de importar una base de datos de producción de Magento con clientes reales. Si proceso un pedido real con un cliente real, ¿de qué sirven los alias de correo electrónico?
kojiro
@kojiro estás en lo correcto, después de importar un conjunto de datos de producción, entonces necesitas eliminar / actualizar la información confidencial / del cliente. Esta no es una buena respuesta, ya que no aborda la situación correctamente.
beeplogic
0
Pruebe esto, codificará los correos electrónicos de los usuarios para ayudarlo con su problema al enviar accidentalmente clientes en vivo desde el entorno de prueba
UPDATE customer_entity SET email = REPLACE(email,'@','-test@abcxyz123-')
Escribimos un script para manejar los volcados de DB para ramificar. Lee este artículo .
El principio básico es que lee
local.xml
para obtener las credenciales de la base de datos, luego volca los datos sobre esa base. Divide el volcado en dos partes, solo la estructura y luego los datos. Pero la clave es que acelera el proceso de volcado convencional al omitir datos no esenciales y evita de manera crítica cualquier bloqueo de tabla durante el volcado que de otro modo bloquearía / colgaría su sitio en vivo.Cuando tenga el volcado de MySQL, puede cambiar la URL muy fácilmente simplemente usando
sed
Luego ejecute una importación mysql en su nueva base de datos.
Entonces, sin el script, una versión muy básica se vería así.
No hay ninguna razón para tener que eliminar el archivo local.xml o volver a ejecutar el instalador si cambia las URL en la base de datos de esta manera.
Todo el proceso de ramificación está bien cubierto en nuestra Guía Magento GIT . Este es un buen proceso para crear ramas de desarrollo, pero reduce el DB en vivo por un margen significativo. Por lo tanto, las pruebas no serán completamente las mismas que en el sitio en vivo.
Por lo tanto, realizar un volcado de DB de vainilla, reemplazar sed, importar DB es suficiente para un sitio de preparación. Y reflejará / coincidirá el sitio en vivo lo más cerca posible.
En términos de evitar las comunicaciones con los clientes, nunca lo hemos considerado una necesidad, ya que siempre creamos cuentas deliberadamente para las pruebas, nunca utilizamos pedidos reales de los clientes para las pruebas.
fuente
Una opción para el problema del correo electrónico es configurar su sitio de desarrollo para redirigir TODOS los correos electrónicos hacia usted. Añade un poco de tranquilidad.
La forma en que lo haga depende de su entorno; para nosotros, agregar esto al servidor virtual hace el trabajo:
fuente
Nada. Cambiar las URL seguras y no seguras es suficiente.
También puede omitir
log_*
datos de tablas solo para hacer que su volcado sea más ligero.fuente
Pruebe esto, codificará los correos electrónicos de los usuarios para ayudarlo con su problema al enviar accidentalmente clientes en vivo desde el entorno de prueba
fuente