パッケージ、リポジトリ、アプリカテゴリを検索

パッケージ詳細v1.0.0

data_migration

古いデータ構造のバージョンを最新版に更新するために、一連のマイグレーションを適用するためのライブラリです。

AndroidiOSWebmacOSWindowsLinux
30日間ダウンロード
44
いいね数
3
Pub ポイント
150

パッケージをインストール

flutter pub add data_migration

パッケージ概要

公開情報に基づく選定ガイドです。参考としてご利用ください。

data_migration パッケージは、バージョン間でデータモデルを進化させるための構造化された方法を提供します。古いデータ構造を最新のスキーマに安全に更新し、アプリのアップデート中にデータの整合性を保証するように設計されています。開発者は、古いデータ形式を新しいものに変換するためのマイグレーション手順を定義でき、永続的なローカルストレージを持つアプリに最適です。このライブラリは複数のプラットフォームをサポートしており、Flutterアプリとシームレスに統合できます。

用途

  • ローカルデータベーススキーマの更新
  • アプリバージョン間でユーザーデータを移行する
  • 互換性の維持
  • 共有設定におけるスキーマの変更の処理
  • アプリ起動時のデータ変換の自動化
  • 複雑なデータモデルの進化をサポートする

主な機能

  • バージョン管理移行システム
  • 安全なデータ変換
  • 拡張可能なマイグレーション定義
  • クロスプラットフォーム対応
  • マイグレーションを定義するためのシンプルな API
  • 組み込みのエラー処理

適している対象

  • 永続的なローカルデータを持つアプリ
  • スキーマ変更を管理する開発者
  • 後方互換性を必要とするプロジェクト
  • バージョン付きデータモデルを使用するチーム
  • 進化するデータ構造を持つ Flutter アプリ

注意事項

  • マイグレーション手順の慎重な計画が必要です
  • 各マイグレーションの手動定義
  • 大規模なデータセットによるパフォーマンスへの潜在的な影響
  • 制限された組み込み検証
  • リアルタイム同期シナリオには適していません
  • 正しいバージョン管理に依存しています

元の README

関連するソースリポジトリの README 原文のスナップショットです。最新の内容はリポジトリをご覧ください。

Data Migration

ci License: MIT coverage

A library for applying a series of migrations to update old versions of data structures to the most recent one.

Installation

dependencies:
  data_migration:

How to use

  1. Create your set of migration

    class CounterV1DataMigration implements DataMigration {
      const CounterV1DataMigration();
    
      @override
      int get fromVersion => 1;
    
      @override
      int get toVersion => 2;
    
      @override
      Future<dynamic> migrate(dynamic data) async {
        final counter = SimpleCounter(data as int);
        return counter.toJson();
      }
    }
    
    final migrator = DataMigrationManager(
      [
        CounterV1DataMigration(),
      ],
    );
    
  2. Apply migration on data

      final migrated1 = await _migrator.migrateIfNeeded(
         3,
         fromVersion: 1,
      );
    

Examples

In the example and tests, there are some examples of "data migration."

カテゴリー

ソースリポジトリ

このパッケージを使用しているプロジェクト

データはまだありません。