Перейти до основного вмісту

База даних

Синхронізатор баз даних

Таблиця користувачів, яку ми створили як демонстрацію, імпортована з шаблону XLSX файлу.

Таблиця

Щоб створити новий синхронізатор, перейдіть на вкладку Синхронізатори та заповніть всю необхідну інформацію, як показано нижче. Потім збережіть зміни.

редагувати

порада

Загалом, вам потрібно заповнити принаймні ID та Name у стовпцях Casdoor. Інші важливі поля включають createdTime, Password, та DisplayName.

Наступні поля є обов'язковими:

  • Organization: Організація, до якої буде імпортовано користувача
  • Name: Назва синхронізатора
  • Type: Виберіть "database"
  • Host: Хост оригінальної бази даних
  • Port: Порт оригінальної бази даних
  • User: Ім'я користувача оригінальної бази даних
  • Password: Пароль оригінальної бази даних
  • Database type: Всі бази даних, що підтримуються Xorm, такі як MySQL, PostgreSQL, SQL Server, Oracle та SQLite
  • Database: Назва оригінальної бази даних
  • Table: Назва оригінальної таблиці користувачів
  • Стовпці таблиці
  • Column name: Назва оригінального стовпця користувачів
  • Column type: Тип оригінального стовпця користувачів
  • Casdoor Column: Назва стовпця користувача Casdoor

Необов'язкові поля:

  • Is hashed: Чи обчислювати хеш-значення. Коли ця опція включена, синхронізатор буде синхронізувати користувача тільки якщо поле користувача в оригінальній таблиці оновлено. Якщо ця опція вимкнена, синхронізатор все одно буде синхронізувати користувача, навіть якщо оновлено тільки поле. Коротше кажучи, користувач не буде синхронізований, поки не будуть оновлені поля, що беруть участь у обчисленні хешу (включено "Is hashed").
  • Is key: Чи є це первинним ключем користувача в оригінальній таблиці та користувача в таблиці Casdoor. При синхронізації бази даних це визначається на основі поля, для якого вибрано опцію "Is key". Принаймні одна з кнопок "Is key" для полів повинна бути вибрана. Якщо жодна не вибрана, за замовчуванням вибирається перша опція "Is key".
  • Avatar base URL: При синхронізації користувачів, якщо Avatar base URL не порожній і оригінальний user.avatar не має префіксу "http", новий user.avatar буде замінений на Avatar base URL + user.avatar.
  • Affiliation table: Використовується для синхронізації приналежності користувача з цієї таблиці в базі даних. Оскільки приналежність може бути кодом типу int у "Affiliation table", її потрібно відображати на рядок. Дивіться getAffiliationMap(). Casdoor має деякі зайві поля для запозичення, тому тут ми використовуємо score для відображення int коду на рядкове ім'я.

Після налаштування синхронізатора, включіть опцію Is enable та збережіть. Синхронізатор почне працювати.

користувачі

Ви також можете використовувати кнопку "Sync" для синхронізації баз даних.

Оновити

Коли Table columns встановлені, як показано на наступному малюнку, виконується операція оновлення.

table_columns

Якщо дані в двох таблицях різні для ключа, ви можете синхронізувати дані між двома таблицями на основі первинного ключа.

  • Оновити користувача в оригінальній таблиці
  • Оновити користувача в таблиці Casdoor

Додати

Коли Table columns встановлені, як показано на наступному малюнку, виконується операція додавання.

table_columns

Якщо кількість даних між двома таблицями різна, додайте дані до таблиці з меншою кількістю даних на основі первинного ключа.

  • Додати користувача в оригінальній таблиці
  • Додати користувача в таблиці Casdoor