Passer au contenu principal

Base de données

Synchroniseur de base de données

La table des utilisateurs que nous avons créée comme démo est importée à partir du fichier modèle XLSX.

Table

Pour créer un nouveau synchroniseur, allez à l'onglet Synchroniseurs et remplissez toutes les informations requises comme indiqué ci-dessous. Ensuite, sauvegardez les modifications.

modifier

conseil

En général, vous devez remplir au moins l'ID et le Name dans les colonnes Casdoor. D'autres champs importants incluent createdTime, Password, et DisplayName.

Les champs suivants sont requis :

  • Organization : L'organisation à laquelle l'utilisateur sera importé
  • Name : Le nom du synchroniseur
  • Type : Sélectionnez "base de données"
  • Host : L'hôte de la base de données originale
  • Port : Le port de la base de données originale
  • User : Le nom d'utilisateur de la base de données originale
  • Password : Le mot de passe de la base de données originale
  • Database type : Toutes les bases de données supportées par Xorm telles que MySQL, PostgreSQL, SQL Server, Oracle et SQLite
  • Database : Le nom de la base de données originale
  • Table : Le nom de la table des utilisateurs originale
  • Colonnes de la table
  • Column name : Le nom de la colonne des utilisateurs originale
  • Column type : Le type de la colonne des utilisateurs originale
  • Casdoor Column : Le nom de la colonne utilisateur Casdoor

Champs optionnels :

  • Is hashed : Indique s'il faut calculer la valeur de hachage. Lorsque cette option est activée, le synchroniseur ne synchronisera l'utilisateur que si le champ de l'utilisateur dans la table d'origine est mis à jour. Si cette option est désactivée, le synchroniseur synchronisera toujours l'utilisateur même si seul le champ est mis à jour. En bref, l'utilisateur ne sera pas synchronisé tant que les champs impliqués dans le calcul du hachage (option "Is hashed" activée) ne sont pas mis à jour.
  • Is key : Indique s'il s'agit de la clé primaire de l'utilisateur dans la table d'origine et dans la table Casdoor. Lors de la synchronisation de la base de données, cela est déterminé en fonction du champ dont l'option "Is key" est sélectionnée. Au moins l'un des boutons "Is key" pour les champs doit être sélectionné. Si aucun n'est sélectionné, la première option "Is key" est sélectionnée par défaut.
  • Avatar base URL : Lors de la synchronisation des utilisateurs, si l'Avatar base URL n'est pas vide et que l'avatar de l'utilisateur d'origine user.avatar n'a pas le préfixe "http", le nouvel avatar de l'utilisateur user.avatar sera remplacé par Avatar base URL + user.avatar.
  • Affiliation table : Elle est utilisée pour synchroniser l'affiliation de l'utilisateur à partir de cette table dans la base de données. Comme l'affiliation peut être un code de type int dans la "Table d'affiliation", elle doit être mappée à une chaîne de caractères. Référez-vous à getAffiliationMap(). Casdoor a quelques champs redondants à emprunter, donc ici nous utilisons score pour mapper le code int à un nom de chaîne.

Une fois que vous avez configuré le synchroniseur, activez l'option Is enable et sauvegardez. Le synchroniseur commencera à fonctionner.

utilisateurs

Vous pouvez également utiliser le bouton "Sync" pour la synchronisation de la base de données.

Mettre à jour

Lorsque les Table columns sont définies comme indiqué dans la figure suivante, l'opération de mise à jour est effectuée.

table_columns

Si les données dans les deux tables sont différentes pour la clé, vous pouvez synchroniser les données entre les deux tables en fonction de la clé primaire.

  • Mettre à jour l'utilisateur dans la table originale
  • Mettre à jour l'utilisateur dans la table Casdoor

Ajouter

Lorsque les Table columns sont définies comme indiqué dans la figure suivante, l'opération d'ajout est effectuée.

table_columns

Si le nombre de données entre les deux tables est différent, ajoutez les données à la table avec le nombre de données le plus bas en fonction de la clé primaire.

  • Ajouter un utilisateur dans la table originale
  • Ajouter un utilisateur dans la table Casdoor