[官网文档翻译]Flutter持久化库drift - 命令行工具(CLI)

11,554 阅读1分钟

「这是我参与11月更文挑战的第28天,活动详情查看:2021最后一次更文挑战」。

Flutter持久化库drift(原moor)官方文档翻译汇总 - 掘金 (juejin.cn)

本文翻译自 drift 的 官方文档 Command line tools for drift (simonbinder.eu)

肉翻多有不足,不吝赐教。


重要通知: moor 已改名为 drift 。更多信息[中文]。

用于 drift 的命令行工具(CLI)

用于和 drift 工程交互的命令行工具集

试验性
现在的时点,drift 的命令行工具是试验性的。如果发现问题还请报告。

使用

如果应用依赖了 drift_dev ,那就可以使用 CLI 工具。这篇文章中,我们使用 pub run ... 来运行工具。如果在使用 Flutter ,需要运行 flutter pub run ...。 两种情况都是在 pubspec.yaml 所在的目录下运行.

分析

运行 drift 的分析器,对工程中所有的 .drift 文件进行提示。

$ dart run drift_dev analyze

WARNING: For file test/data/tables/tables.drift:
WARNING: line 38, column 28: This table has columns without default values, so defaults can't be used for insert.
   ╷
38 │ defaultConfig: INSERT INTO config DEFAULT VALUES;
   │                            ^^^^^^
   ╵
INFO: Found 1 errors or problems

如果发现错误,会以错误码 1 退出。

标识数据库

相比用来确认 drift 分析器是否正常运行,这更多的是一个测试命令。它会标识工程中定义的所有数据库或 DAO。

$ dart run drift_dev identify-databases

Starting to scan in /tmp/example/ ...
INFO: example/example.dart has drift databases or daos: Database
INFO: lib/src/data/database.dart has drift databases or daos: AppDatabase
INFO: test/fake_db.dart has drift databases or daos: TodoDb, SomeDao

Schema 工具

导出

该子命令需要两个路径,一个 Dart 文件和一个目标。 Dart 文件只包含 @DriftDatabase 注解中关联的一个类。运行下面的命令会把数据库 schema 导出到 json。

$ dart run drift_dev schema dump path/to/databases.dart schema.json

生成的文件(这里是 schema.json )包含所有下面内容的信息:

  • 表、包含列的详细信息
  • 触发器
  • 索引
  • 包含 drift 文件的 @create 查询
  • 相关的依赖

导出一个 schema 可用于为 schema 迁移生成测试代码。详细内容参考这个指南