Saltar al contenido principal

Base de datos

Sincronizador de Base de Datos

La tabla de usuarios que creamos como demostración se importa desde el archivo XLSX de plantilla.

Tabla

Para crear un nuevo sincronizador, ve a la pestaña Sincronizadores y completa toda la información requerida como se muestra a continuación. Luego, guarda los cambios.

editar

consejo

En general, necesitas completar al menos el ID y Name en las columnas de Casdoor. Otros campos importantes incluyen createdTime, Password y DisplayName.

Los siguientes campos son obligatorios:

  • Organization: La organización a la que se importará el usuario
  • Name: El nombre del sincronizador
  • Type: Selecciona "base de datos"
  • Host: El host de la base de datos original
  • Port: El puerto de la base de datos original
  • User: El nombre de usuario de la base de datos original
  • Password: La contraseña de la base de datos original
  • Database type: Todas las bases de datos soportadas por Xorm como MySQL, PostgreSQL, SQL Server, Oracle y SQLite
  • Database: El nombre de la base de datos original
  • Table: El nombre de la tabla de usuarios original
  • Columnas de la tabla
  • Column name: El nombre de la columna de usuarios original
  • Column type: El tipo de la columna de usuarios original
  • Casdoor Column: El nombre de la columna de usuario de Casdoor

Campos opcionales:

  • Is hashed: Si se calcula el valor hash. Cuando esta opción está habilitada, el sincronizador solo sincronizará el usuario si el campo del usuario en la tabla original se actualiza. Si esta opción está deshabilitada, el sincronizador seguirá sincronizando el usuario incluso si solo se actualiza el campo. En resumen, el usuario no será sincronizado hasta que se actualicen los campos involucrados en el cálculo del hash (habilitado "Is hashed").
  • Is key: Si es la clave primaria del usuario en la tabla original y en la tabla de Casdoor. Al sincronizar la base de datos, se determina en base al campo cuya opción "Is key" está seleccionada. Al menos uno de los botones "Is key" para los campos debe ser seleccionado. Si ninguno está seleccionado, la primera opción "Is key" se selecciona por defecto.
  • Avatar base URL: Al sincronizar usuarios, si la Avatar base URL no está vacía y el origen user.avatar no tiene el prefijo "http", el nuevo user.avatar será reemplazado por Avatar base URL + user.avatar.
  • Affiliation table: Se utiliza para sincronizar la afiliación del usuario desde esta tabla en la base de datos. Dado que la afiliación puede ser un código de tipo int en la "Affiliation table", necesita ser mapeado a una cadena. Consulta getAffiliationMap(). Casdoor tiene algunos campos redundantes para pedir prestados, así que aquí usamos score para mapear el código int a un nombre de cadena.

Una vez que hayas configurado el sincronizador, habilita la opción Is enable y guarda. El sincronizador comenzará a trabajar.

usuarios

También puedes usar el botón "Sync" para la sincronización de la base de datos.

Actualizar

Cuando las Table columns están configuradas como se muestra en la siguiente figura, se realiza la operación de actualización.

table_columns

Si los datos en las dos tablas son diferentes para la clave, puedes sincronizar los datos entre las dos tablas basándote en la clave primaria.

  • Actualizar usuario en la tabla original
  • Actualizar usuario en la tabla de Casdoor

Añadir

Cuando las Table columns están configuradas como se muestra en la siguiente figura, se realiza la operación de añadir.

table_columns

Si el número de datos entre las dos tablas es diferente, añade los datos a la tabla con el menor número de datos basándote en la clave primaria.

  • Añadir usuario en la tabla original
  • Añadir usuario en la tabla de Casdoor