データベース
データベースシンカー
デモとして作成したユーザーテーブルは、テンプレートXLSXファイルからインポートされます。
シンカータブに移動し、以下に示すように必要な情報をすべて入力して新しいシンカーを作成します。 次に、変更を保存します。
ヒント
一般的に、Casdoorのカラムで少なくともID
とName
を入力する必要があります。 他の重要なフィールドにはcreatedTime
、Password
、DisplayName
が含まれます。
以下のフィールドが必要です:
Organization
: ユーザーがインポートされる組織Name
: シンカーの名前Type
: "database"を選択Host
: 元のデータベースホストPort
: 元のデータベースポートUser
: 元のデータベースユーザー名Password
: 元のデータベースパスワードDatabase type
: MySQL、PostgreSQL、SQL Server、Oracle、SQLiteなど、XormがサポートするすべてのデータベースDatabase
: 元のデータベース名Table
: 元のユーザーテーブル名テーブルのカラム
Column name
: 元のユーザーカラム名Column type
: 元のユーザーカラムタイプCasdoor Column
: Casdoorのユーザーカラム名
オプションのフィールド:
Is hashed
: ハッシュ値を計算するかどうか。 このオプションが有効になっている場合、シンカーは元のテーブルのユーザーのフィールドが更新された場合にのみユーザーを同期します。 このオプションが無効になっている場合、フィールドのみが更新された場合でもシンカーはユーザーを同期します。 要するに、ハッシュ計算に関与するフィールド(「Is hashed」が有効)が更新されるまで、ユーザーは同期されません。Is key
: 元のテーブルのユーザーとCasdoorテーブルのユーザーの主キーかどうか。 データベースを同期する際には、「Is key」オプションが選択されたフィールドに基づいて決定されます。 フィールドの「Is key」ボタンのうち少なくとも1つを選択する必要があります。 選択されていない場合、最初の「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
が設定されている場合、更新操作が行われます。
キーが異なる場合、主キーに基づいて2つのテーブル間でデータを同期できます。
- 元のテーブルのユーザーを更新
- Casdoorテーブルのユーザーを更新
追加
以下の図に示すようにTable columns
が設定されている場合、追加操作が行われます。
2つのテーブル間のデータ数が異なる場合、主キーに基づいてデータ数が少ないテーブルにデータを追加します。
- 元のテーブルにユーザーを追加
- Casdoorテーブルにユーザーを追加