メインコンテンツにスキップ

データベース

データベースシンカー

デモとして作成したユーザーテーブルは、テンプレートXLSXファイルからインポートされます。

テーブル

シンカータブに移動し、以下に示すように必要な情報をすべて入力して新しいシンカーを作成します。 次に、変更を保存します。

編集

ヒント

一般的に、Casdoorのカラムで少なくともIDNameを入力する必要があります。 他の重要なフィールドにはcreatedTimePasswordDisplayNameが含まれます。

以下のフィールドが必要です:

  • 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.avatarAvatar base URL + user.avatarに置き換えられます。
  • Affiliation table: このテーブルのデータベースからユーザーの所属を同期するために使用されます。 「Affiliation table」では所属がint型のコードである可能性があるため、文字列にマッピングする必要があります。 getAffiliationMap()を参照してください。 Casdoorにはいくつかの冗長なフィールドがあるため、ここではscoreを使用してintコードを文字列名にマッピングします。

シンカーを設定したら、Is enableオプションを有効にして保存します。 シンカーが動作を開始します。

ユーザー

データベース同期のために「Sync」ボタンも使用できます。

更新

以下の図に示すようにTable columnsが設定されている場合、更新操作が行われます。

table_columns

キーが異なる場合、主キーに基づいて2つのテーブル間でデータを同期できます。

  • 元のテーブルのユーザーを更新
  • Casdoorテーブルのユーザーを更新

追加

以下の図に示すようにTable columnsが設定されている場合、追加操作が行われます。

table_columns

2つのテーブル間のデータ数が異なる場合、主キーに基づいてデータ数が少ないテーブルにデータを追加します。

  • 元のテーブルにユーザーを追加
  • Casdoorテーブルにユーザーを追加