Перейти к основному содержанию

База данных

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

Таблица пользователей, которую мы создали в качестве демонстрации, импортирована из шаблона 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 и сохраните. Синхронизатор начнет работать.

пользователи

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

Обновить

Когда Table columns установлены, как показано на следующем рисунке, выполняется операция обновления.

table_columns

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

  • Обновить пользователя в исходной таблице
  • Обновить пользователя в таблице Casdoor

Добавить

Когда Table columns установлены, как показано на следующем рисунке, выполняется операция добавления.

table_columns

Если количество данных между двумя таблицами различается, добавьте данные в таблицу с меньшим количеством данных на основе первичного ключа.

  • Добавить пользователя в исходную таблицу
  • Добавить пользователя в таблицу Casdoor