Esta documentación ha sido traducida automáticamente por IA.
Migración
Durante el desarrollo y las actualizaciones de los plugins de NocoBase, la estructura de la base de datos o la configuración de un plugin pueden sufrir cambios incompatibles. Para asegurar una actualización fluida, NocoBase ofrece un mecanismo de Migración que permite gestionar estos cambios mediante la escritura de archivos de migración. Esta guía le ayudará a comprender de forma sistemática cómo utilizar las migraciones y su flujo de trabajo de desarrollo.
Concepto de Migración
Una migración es un script que se ejecuta automáticamente durante las actualizaciones de los plugins y se utiliza para resolver los siguientes problemas:
- Ajustes en la estructura de las tablas de datos (como añadir campos, modificar tipos de campos, etc.)
- Migración de datos (por ejemplo, actualizaciones masivas de valores de campos)
- Actualizaciones de la configuración o la lógica interna del plugin
El momento de ejecución de las migraciones se divide en tres categorías:
Creación de Archivos de Migración
Los archivos de migración deben ubicarse en src/server/migrations/*.ts dentro del directorio del plugin. NocoBase ofrece el comando create-migration para generar rápidamente archivos de migración.
Parámetros Opcionales
Ejemplo
La ruta del archivo de migración generado es la siguiente:
Contenido inicial del archivo:
⚠️
appVersionse utiliza para identificar la versión a la que se dirige la actualización. Los entornos con versiones anteriores a la especificada ejecutarán esta migración.
Escritura de Migraciones
En los archivos de migración, puede acceder a las siguientes propiedades y API comunes a través de this para operar cómodamente con la base de datos, los plugins y las instancias de la aplicación:
Propiedades Comunes
-
this.app
Instancia actual de la aplicación NocoBase. Se puede utilizar para acceder a servicios globales, plugins o configuraciones. -
this.db
Instancia del servicio de base de datos, proporciona interfaces para operar con modelos (colecciones). -
this.plugin
Instancia del plugin actual, se puede utilizar para acceder a los métodos personalizados del plugin. -
this.sequelize
Instancia de Sequelize, puede ejecutar directamente SQL nativo u operaciones de transacción. -
this.queryInterface
QueryInterface de Sequelize, comúnmente utilizada para modificar estructuras de tablas, como añadir campos, eliminar tablas, etc.
Ejemplo de Escritura de Migración
Además de las propiedades comunes mencionadas anteriormente, la Migración también ofrece una amplia gama de API. Para obtener documentación detallada, consulte la API de Migración.
Activación de Migraciones
La ejecución de las migraciones se activa mediante el comando nocobase upgrade:
Durante la actualización, el sistema determinará el orden de ejecución basándose en el tipo de migración y appVersion.
Prueba de Migraciones
En el desarrollo de plugins, se recomienda utilizar un Mock Server para probar si la migración se ejecuta correctamente, evitando así dañar los datos reales.
Tip: Usar un Mock Server le permite simular rápidamente escenarios de actualización y verificar el orden de ejecución de las migraciones y los cambios en los datos.
Recomendaciones para la Práctica de Desarrollo
- Divida las Migraciones
Intente generar un archivo de migración por cada actualización para mantener la atomicidad y facilitar la resolución de problemas. - Especifique el Momento de Ejecución
ElijabeforeLoad,afterSyncoafterLoadsegún los objetos de la operación para evitar depender de módulos no cargados. - Gestione el Control de Versiones
UtiliceappVersionpara especificar claramente la versión a la que se aplica la migración y evitar ejecuciones repetidas. - Cobertura de Pruebas
Verifique la migración en un Mock Server antes de ejecutar la actualización en un entorno real.

