Skip to main content

Database syncer

The database syncer connects to an external database and syncs user data into Casdoor. A demo users table can be imported from the template XLSX.

Table

Create a syncer

Go to Syncers and create a new syncer with the following. Save when done.

edit

tip

Fill at least ID and Name in the Casdoor column mapping. Other useful fields include createdTime, Password, and DisplayName.

Required fields

FieldDescription
OrganizationOrganization to import users into.
NameSyncer name.
Typedatabase.
Host, Port, User, PasswordSource database connection.
Database typeMySQL, PostgreSQL, SQL Server, Oracle, or SQLite (Xorm-supported).
DatabaseSource database name.
TableSource user table name.
Table columnsColumn name (source), Column type (source), Casdoor Column (Casdoor user field).

Optional fields

FieldDescription
Is hashedIf enabled, sync runs only when fields included in the hash change; other field-only changes do not trigger sync.
Is keyMarks the primary key used to match source and Casdoor users. At least one column must be key; if none is set, the first is used.
Avatar base URLIf set and source user.avatar does not start with http, Casdoor stores Avatar base URL + user.avatar.
Affiliation tableTable used to sync user affiliation. Int codes can be mapped to names; see getAffiliationMap() and syncer_util (e.g. score for int→string mapping).

Enable Is enable and save; the syncer will run. You can also trigger a sync with the Sync button.

users

Update

With Table columns configured for key mapping, differences on the key between source and Casdoor trigger updates:

  • Update in source table — changes sync to Casdoor.
  • Update in Casdoor — changes sync back to source.

Add

When row counts differ, the syncer adds rows to the table with fewer rows, using the key to match:

  • Add user in source table:
  • Add user in Casdoor table: