> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> カスタムデータベースでユーザーの自動移行を有効にする方法を学びます。

# データベースからの自動移行を設定する

[カスタムデータベース Action スクリプト](/ja/docs/authenticate/database-connections/custom-db/templates)を使用して、外部のユーザーストアから Auth0 へユーザーを自動的に移行できるように、データベース接続を設定します。

<Warning>
  複数の移行方法 (たとえば、自動移行の後にユーザーを一括インポートする方法) を使用しようとすると、`DUPLICATED_USER` エラーが発生する場合があります。このエラーは、ユーザーが Auth0 の内部ユーザーストアには存在しているものの、テナントには存在しないことを示します。このエラーを解消するには、Auth0 Management API の [Delete a Connection User](https://auth0.com/docs/api/management/v2#!/Connections/delete_users_by_email) エンドポイントを使用してユーザーを削除してから、インポートを再実行してください。
</Warning>

<div id="configure-database-connection-as-custom">
  ## データベース接続をカスタムに設定する
</div>

データベース接続を作成し、カスタムとして設定します。

1. [Auth0 Dashboard > Authentication > Database](https://manage.auth0.com/#/connections/database) に移動し、対象のデータベースを選択して表示します。
2. **Custom Database** ビューを選択し、**Use my own database** をオンにします。

   <Frame>
     <img src="https://mintcdn.com/translations/raZlN0BXDjNonwyb/docs/images/cdy7uua7fh8z/11HPAdVwJMmnWbzMVjHCJ8/f75ff47f613a41778f266643f29ab2b1/2025-02-27_17-25-36.png?fit=max&auto=format&n=raZlN0BXDjNonwyb&q=85&s=76c3491d5dc990e888f5fcaa90412e7d" alt="Auth0 Dashboard Authentication データベース接続 Custom Database Settings Use Own Database Enabled" width="799" height="408" data-path="docs/images/cdy7uua7fh8z/11HPAdVwJMmnWbzMVjHCJ8/f75ff47f613a41778f266643f29ab2b1/2025-02-27_17-25-36.png" />
   </Frame>
3. **Settings** ビューを選択し、**Import Users to Auth0** をオンにして、**Save** を選択します。

<div id="configure-database-action-scripts">
  ## Database Action Scripts を設定する
</div>

**Custom Database** ビューを選択し、**Database Action Scripts** を探します。

<Frame>
  <img src="https://mintcdn.com/translations/pvjQqAy3EB2TK6NP/docs/images/cdy7uua7fh8z/4LBIvvjaABo51It4eVCmX3/4ef14765c79cc5b7ecfa3f3155caa9eb/Screen_Shot_2021-05-18_at_8.54.55_PM.png?fit=max&auto=format&n=pvjQqAy3EB2TK6NP&q=85&s=7886c762d1e9f81d707f9e53bb330dde" alt="ダッシュボード Authentication Database 接続 Custom Database タブ Database Action Scripts" width="2030" height="1366" data-path="docs/images/cdy7uua7fh8z/4LBIvvjaABo51It4eVCmX3/4ef14765c79cc5b7ecfa3f3155caa9eb/Screen_Shot_2021-05-18_at_8.54.55_PM.png" />
</Frame>

<div id="login">
  ### ログイン
</div>

[Login](/ja/docs/authenticate/database-connections/custom-db/templates/login) スクリプトは、Auth0 に存在しないユーザーがログインを試みるたびに実行されます。このスクリプトは、ユーザーにパスワードの再入力を求めることなく、外部ユーザーストアにそのユーザーが存在するかどうかを確認します。

<div id="get-user">
  ### Get User
</div>

[Get User](/ja/docs/authenticate/database-connections/custom-db/templates/get-user) スクリプトは、次のいずれかの状況で実行されます。

* ユーザーがサインアップを開始した場合。
* ユーザーがパスワード変更フローを開始した場合。
* ユーザーが Identifier First + Biometrics の使用時にログイン識別子を入力した場合。
* <Tooltip tip="Management API: お客様が管理タスクを実行できるようにする製品です。" cta="用語集を表示" href="/ja/docs/glossary?term=Management+API">Management API</Tooltip> の [ユーザーのメールアドレスまたは username を更新](https://auth0.com/docs/api/v2#!/Users/patch_users_by_id) または [ユーザーを作成](https://auth0.com/docs/api/management/v2#!/Users/post_users) エンドポイントが呼び出された場合。

まだ移行されていないユーザーがパスワード変更を確定して正常にログインすると、新しいパスワードでそのユーザープロファイルが Auth0 に作成されます。このユーザープロファイルには、Get User スクリプトで返されたすべてのデータが含まれます。それ以降、このユーザーのログインはすべて Auth0 で直接実行されます。

<div id="verify-user-migration-is-complete">
  ## ユーザー移行が完了していることを確認する
</div>

<Tooltip tip="サービスを設定するための Auth0 の主要な製品。" cta="用語集を表示" href="/ja/docs/glossary?term=Auth0+Dashboard">Auth0 Dashboard</Tooltip> または Auth0 Management API を使用して、すべてのユーザーが Auth0 のユーザーストアに移行されていることを確認します。

1. [Auth0 Dashboard > User Management > Users](https://manage.auth0.com/#/users) に移動し、ユーザー一覧を確認します。
2. Management API の [List or Search Users](https://auth0.com/docs/api/v2#!/Users/get_users) エンドポイントを使用します。

<div id="disconnect-external-user-store">
  ## 外部ユーザーストアの接続解除
</div>

Database Action Scripts を no-op 関数として再設定します。これにより、Auth0 がユーザーの認証のために外部ユーザーストアへアクセスしなくなります。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  **Import Users to Auth0** オプションは必ず有効のままにしてください。このオプションを無効にすると、ローカルにインポートされたユーザーではなく、Auth0 は認証やその他のユーザー操作にスクリプトだけを使用するようになります。
</Callout>

1. [Auth0 Dashboard > Authentication > Database](https://manage.auth0.com/#/connections/database) に移動し、データベース接続を選択します。

2. **Custom Database** ビューに切り替え、**Database Action Scripts** を探します。

3. **Login** スクリプトを更新します。

   ```javascript lines theme={null}
   function login (email, password, callback) {
     return callback(null, null);
   }
   ```

4. **Get User** スクリプトを更新します。

   ```javascript lines theme={null}
   function getByEmail (email, callback) {
     return callback(null, null);
   }
   ```

<div id="troubleshoot-user-migration-issues">
  ## ユーザー移行に関する問題のトラブルシューティング
</div>

自動移行で問題が発生した場合は、まず [Custom Database Connection and Action Script Best Practices](/ja/docs/authenticate/database-connections/custom-db/custom-database-connections-scripts) を確認してください。

<div id="user-already-exists">
  ### ユーザーはすでに存在します
</div>

この問題が発生する一般的なケースは、次のとおりです。

* データベース接続からユーザーを削除した後で、そのユーザーを再作成しようとする。
* 外部ユーザーストアにすでに存在するユーザーを、データベース接続で新規作成しようとする。
* ユーザーの移行プロセスが中断された。

ユーザー移行プロセスでは、Auth0 はまず内部ユーザーストアに部分的なユーザープロファイルを作成し、その後 データベース接続に完全なユーザープロファイルを作成します。何らかの問題が発生して完全なユーザープロファイルを作成できない場合、`The user already exists` エラーが発生することがあります。

通常、この問題は データベース接続からユーザーを削除し、内部ユーザーストアからもユーザーを削除したうえで、移行プロセスを再試行することで解決できます。

1. [Actions Real-time Logs](/ja/docs/customize/actions/actions-real-time-logs) で `console.log()` の出力を確認します。
2. Management API の [Delete a User](https://auth0.com/docs/api/management/v2#!/Users/delete_users_by_id) エンドポイントを使用してユーザーを削除します。
3. Management API の [Delete a Connection User](https://auth0.com/docs/api/management/v2#!/Connections/delete_users_by_email) エンドポイントを使用してユーザーを削除します。
4. ユーザーにログインまたはパスワードの変更を行ってもらい、移行を再試行します。

<div id="missing-metadata">
  ### メタデータの欠落
</div>

移行プロセスを開始するログインフローまたはパスワード変更フローの途中でユーザーの処理が中断されると、Auth0 は他のプロファイルデータとあわせてそのメタデータ (`user_metadata` または `app_metadata`) を転送できないことがあります。

この状況は、ユーザーのプロファイルにメタデータがないことを確認し、外部ユーザーストアからそれを取得して Auth0 に保存する [Action](/ja/docs/customize/actions) を作成することで軽減できます。

<div id="learn-more">
  ## 関連情報
</div>

* [ユーザーの一括インポート](/ja/docs/manage-users/user-migration/bulk-user-imports)
* [ユーザー インポート / エクスポート拡張機能](/ja/docs/manage-users/user-migration/user-import-export-extension)
