搜索插件、代码仓与 APP 分类

插件详情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."

所属分类

源码仓库

使用此插件的项目

暂无相关数据。