编辑条目

DynoTable 在一个真正的代码编辑器中以 JSON 形式编辑条目 —— 提供自动补全、格式化和内联校验 —— 然后把每一次保存都路由经过暂存区,因此在你提交之前任何内容都不会写入 DynamoDB。

从网格中打开一个条目即可编辑它,或按 ⌘N 创建一个新条目。新条目会预填表的键属性;其余的由你填写。

条目编辑器,含 JSON 缓冲区、模式切换和保存控件。
条目编辑器,含 JSON 缓冲区、模式切换和保存控件。

JSON 模式

编辑器标题栏中的一个切换开关用于改变条目的表示方式。Plain 和 DynamoDB JSON 完全无损 —— 在两者之间切换会让 String、Number、Boolean、Null、Map、List 和 Set 来回往返而不改变你的编辑内容。

  • Plain —— 基本类型保持朴素("count": 3,而非 {"N": "3"})。Set 使用一个紧凑的单键标记:字符串集用 {"SS": [...]},数字集用 {"NS": [...]},二进制集用 {"BS": [...]}。这是手动阅读和编辑最简单的模式。
  • DynamoDB JSON —— AWS 规范的 marshalled 线缆形式,其中每个值都带有类型包装。当你从其他地方粘贴 DynamoDB-JSON 时使用它。
  • Flow —— 解析后条目的只读图(Map、List 和 Set 作为节点)。在理解一条深度嵌套记录的结构时很有用。编辑仍然在底层的 Plain / DynamoDB 缓冲区中进行。

在编辑器中按 ⌘⇧M 循环切换模式。切换开关旁的 ? 会显示每种格式的并排示例。

校验

编辑器会随你输入而校验,并就地呈现问题:

  • 格式错误的 JSON 和 schema 违规会显示为编辑器诊断。
  • 键属性会被检查,因此你无法保存一个缺少分区键/排序键的条目。
  • ⌘⇧F 重新格式化缓冲区。

如果解析错误阻止了模式切换,切换开关会弹回,错误保持可见 —— 你的缓冲区绝不会被悄悄重新格式化成无效的内容。

保存

保存一个条目会将其暂存 —— 该更改会作为一个 diff 加入那张表的暂存区(在该表的每个视图之间共享),并且只有在你提交时才写入 DynamoDB。两个保存快捷键:

  • ⌘S —— 暂存更改(不提交)。更安全;先在面板中审阅。
  • ⌘⇧S —— 保存立即提交。

暂存(或一次干净的提交)会关闭编辑器。如果一次提交遇到写入冲突或错误,编辑器会保持打开,让你可以从暂存面板进行 rebase。要继续编辑一个已暂存的更改,从暂存面板的 diff 卡片中重新打开它。

限制

有几个 v1 的边缘情况值得了解:

  • 大于 2⁵³ 的数字在两种 JSON 模式下都会损失精度(这是 DynamoDB SDK 的边界)。要无损保存大数字,请在导出时使用 marshalled 变体。
  • 在 DynamoDB 模式中编辑的二进制(B / BS)值在保存时可能会往返成字符串类型 —— 请在 Plain 模式下编辑二进制。

更新于