跳到主内容

数据库

数据库同步器

我们创建的用户表作为演示,是从模板XLSX文件导入的。

表格

要创建新的同步器,请转到同步器选项卡,并按照下面的示例填写所有必需的信息。 然后,保存更改。

编辑

提示

一般来说,你需要至少在Casdoor列中填写IDName。 其他重要字段包括createdTimePasswordDisplayName

以下字段是必需的:

  • Organization:用户将被导入的组织
  • Name: 同步器名称
  • Type:选择"数据库"
  • 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:用于从数据库中的此表同步用户的隶属关系。 由于隶属关系可能是"Affiliation table"中的int类型代码,因此需要映射为字符串。 参考getAffiliationMap()。 Casdoor有一些冗余字段可以借用,所以这里我们使用score将int代码映射为字符串名称。

配置好同步器后,启用Is enable选项并保存。 同步器将开始工作。

用户

你也可以使用"Sync"按钮进行数据库同步。

更新

Table columns设置如下图所示时,执行更新操作。

table_columns

如果两个表中的关键数据不同,可以根据主键在两个表之间同步数据。

  • 在原始表中更新用户
  • 在Casdoor表中更新用户

添加

Table columns设置如下图所示时,执行添加操作。

table_columns

如果两个表之间的数据数量不同,可以根据主键将数据添加到数据量较少的表中。

  • 在原始表中添加用户
  • 在Casdoor表中添加用户