Name:
interface
Value:
Amplify has re-imagined the way frontend developers build fullstack applications. Develop and deploy without the hassle.

Page updated May 2, 2026

Maintenance ModeYou are viewing Amplify Gen 1 documentation. Amplify Gen 1 has entered maintenance mode and will reach end of life on May 1, 2027. New project should use Amplify Gen 2. For existing Gen 1 projects, a migration guide and tooling are available to help you upgrade. Switch to the latest Gen 2 docs →

DataStoreからの移行

DataStoreについて

AWS Amplify DataStoreは、アプリとクラウド間のデータを自動的に同期するローカルファースト(ローカル優先)のデータレイヤーを提供していました。DataStoreを使用していた場合、同期ロジックを自分で記述することなく、いくつかの強力な機能を得ることができました。セッション間でデータを永続化するローカルデータベース、AppSyncバックエンドとの自動双方向同期、バージョン追跡を使用した組み込みの競合解決、ミューテーション キューとリプレイを備えた完全なオフラインサポート、observe()およびobserveQuery()による リアルタイム更新です。

DataStoreはGraphQL操作、ネットワーク状態管理、データの一貫性の複雑さを抽象化していました。ローカルモデルの単純なsavequerydeleteメソッドで作業でき、残りはすべてDataStoreが裏で処理していました。

このガイドでは、DataStoreからApollo KotlinおよびAWS AppSync Apollo Extensions libraryへの移行方法を示します。これらは、クエリ、ミューテーション、サブスクリプションに使用されます。DataStoreの機能セットのうち、アプリが実際に使用している量によっては、移行が予想より簡単な場合があります。

フロントエンドクライアントがDataStoreから移行された後、バックエンドで競合解決を無効化して、同期インフラストラクチャを削除し、ミューテーションを簡素化(_version追跡なし)し、ソフト削除からハード削除に切り替えます。

このガイドについて

このガイドでは、DataStoreからApollo Kotlinへの移行パスについて説明します。AppSyncエンドポイントでApollo Kotlinをセットアップし、すべてのCRUD操作を移行し、オプションでローカルキャッシングとオフラインファーストサポートを追加します。

クイック比較:前後

一般的なDataStore操作がApollo Kotlinにどのように変換されるかについての概要を以下に示します。

DataStore操作Apollo Kotlin相当
Amplify.DataStore.save()Apolloミューテーション(CreatePostMutationUpdatePostMutation
Amplify.DataStore.delete()Apolloミューテーション(DeletePostMutation
Amplify.DataStore.query()Apolloクエリ(GetPostQueryGetPostsQuery
Amplify.DataStore.observe()Apolloサブスクリプション(OnCreateSubscriptionなど)をtoFlow()
Amplify.DataStore.observeQuery()Apollo正規化キャッシュ+watch()
Amplify.DataStore.clear()不要になりました(クリアすべきローカルDataStoreなし)
Amplify.DataStore.start() / stop()不要になりました

ユースケース

すべての顧客がDataStoreの機能セット全体を必要とするわけではありません。特定のユースケースに応じて、移行は簡潔な場合があります。

  1. ローカルキャッシング: DataStoreを主にローカルキャッシングレイヤーとして使用し、デバイスにデータを一時的に保存しているが、その完全なオフラインファースト機能には大きく依存していない場合、Apollo Kotlinはアプリケーションが主に接続されていて、オフラインアクセスのみが時々必要な場合、完全なオフライン同期管理の複雑さなしに軽量なデータキャッシングを提供できるため、良い選択肢となります。
  2. オフラインファースト: ビジネス要件が完全なオフラインファースト機能をサポートすることに依存している場合、オフラインファーストガイドが新しいオフラインファースト ソリューションへの移行のためのハイレベルアプローチを提供します。

このガイドを使用する方法

ページを順番に従ってください。各ステップは前のステップに基づいています。

  1. DataStoreを削除 プロジェクトからDataStore依存関係とプラグインを削除してください。

  2. スキーマとGraphQL操作 AppSyncスキーマを取得し、Apolloコード生成用のGraphQL操作を定義してください。

  3. Apollo Kotlinをセットアップ 依存関係を追加し、Gradleプラグインを設定し、AppSyncエンドポイントと認証を使用してApolloクライアントをセットアップしてください。

  4. DataStoreからApolloに移行 すべてのDataStore操作をApollo相当物で置き換えてください。savequerydeleteobserveobserveQueryを移行してください。

  5. オプション:ローカルキャッシング Apolloの正規化キャッシュまたはRoomを使用したカスタムキャッシングレイヤーを使用してローカルキャッシュをセットアップしてください。

  6. オフラインファースト リモート同期、ライブ同期、ネットワーク検出、オフラインミューテーションで完全なオフラインサポートを構築してください。

  7. 競合解決を無効化 すべてのフロントエンドクライアントがDataStoreから移行されたら、同期インフラストラクチャを削除し、ミューテーションを簡素化し、ソフト削除からハード削除に切り替えてください。

  8. 役立つリソース 追加のドキュメンテーション、サードパーティパッケージ、参考資料です。

移行チェックリスト

移行を計画・追跡するにはこのチェックリストを使用してください:

  1. DataStore依存関係を削除build.gradle.ktsからcom.amplifyframework:aws-datastoreを削除してください(DataStoreを削除を参照)
  2. DataStoreプラグインを削除Amplify.addPlugin()呼び出しからAWSDataStorePlugin()を削除してください
  3. 生成されたモデルファイルを削除 — DataStore生成モデルクラスを削除してください
  4. スキーマと操作をセットアップ — AppSyncスキーマを取得し、GraphQL操作を定義してください(スキーマとGraphQL操作を参照)
  5. Apollo Kotlinをセットアップ — 依存関係を追加し、Apolloクライアントを設定してください(Apollo Kotlinをセットアップを参照)
  6. CRUD操作を移行DataStore.save()DataStore.query()DataStore.delete()をApollo相当物で置き換えてください(DataStoreからApolloに移行を参照)
  7. リアルタイムリスナーを移行DataStore.observe()およびDataStore.observeQuery()をApolloサブスクリプションとキャッシュウォッチャーで置き換えてください
  8. テスト — すべてのCRUD操作、リアルタイムサブスクリプション、エラーハンドリングを検証してください
  9. 競合解決を無効化 — すべてのクライアントが移行されたら(競合解決を無効化を参照)