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

插件详情v0.3.0

sqflite_migration

一个用于启用 SQLite 数据库迁移的库,使用 sqflite 插件。

AndroidiOSmacOS
近 30 天下载
2520
喜欢数
23
Pub 分数
155

安装插件

flutter pub add sqflite_migration

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

sqflite_migration 是一个 Flutter 包,它通过 sqflite 插件简化了 SQLite 数据库的迁移。该工具提供了一种结构化的方法来管理随时间变化的数据库模式,确保在应用程序更新期间数据完整性。该库允许开发者定义迁移脚本,当数据库版本发生变化时自动运行,从而简化本地数据库的版本控制。它与 sqflite 无缝集成,并支持 Android、iOS 和 macOS 平台。

适合场景

  • 管理本地 SQLite 数据库中的架构更改
  • 在应用程序更新期间自动升级数据库
  • 确保跨应用版本的向后兼容性
  • 处理迁移期间的复杂数据转换
  • 支持多步骤迁移工作流

主要特点

  • 版本化迁移脚本
  • 数据库打开时自动执行迁移
  • 用于定义迁移步骤的简单 API
  • 与 sqflite 插件的兼容性
  • 跨平台支持(Android、iOS、macOS)

适合对象

  • 需要持久本地数据存储的应用程序
  • 具有不断演变的数据库模式的项目
  • 开发人员手动管理数据库版本控制
  • 需要可靠迁移模式的团队
  • 具有离线优先架构的 Flutter 应用

使用建议

  • 需要手动设置迁移文件
  • 依赖于 sqflite 插件
  • 迁移逻辑必须具有幂等性
  • 无内置回滚机制
  • 有限的错误处理,仅限基本日志记录

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

Build Status codecov

Migrate your mobile sqlite database

Library to manage sqlite db migrations using sqflite plugin.

Getting Started

import 'package:path/path.dart';
import 'package:sqflite/sqflite.dart';
import 'package:sqflite_migration/sqflite_migration.dart';

final initialScript = [
  '''
create table _todo_list (
  id integer primary key autoincrement,
  alias text not null
  )
''',
  '''
create table _task (
  id integer primary key autoincrement,
  description text,
  todo_list_id integer not null,
  CONSTRAINT fk_todo_lists
    FOREIGN KEY (todo_list_id)
    REFERENCES _todo_list(id)
);
'''
];

final migrations = [
  '''
  alter table _task add column done integer default 0;
  '''
];

final config = MigrationConfig(initializationScript: initialScript, migrationScripts: migrations);

Future<Database> open() async {
 final databasesPath = await getDatabasesPath();
 final path = join(databasesPath, 'test.db');
 
 return await openDatabaseWithMigration(path, config);
}

所属分类

依赖

依赖清单 1 项

源码仓库

使用此插件的项目

暂无相关数据。