数据库
数据库同步器
我们创建的用户表作为演示,是从模板XLSX文件导入的。
要创建新的同步器,请转到同步器选项卡,并按照下面的示例填写所有必需的信息。 然后,保存更改。
提示
一般来说,你需要至少在Casdoor列中填写ID
和Name
。 其他重要字段包括createdTime
、Password
和DisplayName
。
以下字段是必需的:
Organization
:用户将被导入的组织Name
: 同步器名称Type
:选择"数据库"Host
: 原始数据库主机地址Port
: 原始数据库端口User
: 原始数据库用户名Password
: 原始数据库密码Database type
:所有Xorm支持的数据库,如MySQL、PostgreSQL、SQL Server、Oracle和SQLiteDatabase
: 原始数据库名称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
设置如下图所示时,执行更新操作。
如果两个表中的关键数据不同,可以根据主键在两个表之间同步数据。
- 在原始表中更新用户
- 在Casdoor表中更新用户
添加
当Table columns
设置如下图所示时,执行添加操作。
如果两个表之间的数据数量不同,可以根据主键将数据添加到数据量较少的表中。
- 在原始表中添加用户
- 在Casdoor表中添加用户