文档
风险等级
每项更改都有三个等级之一和一个原因。等级关注的是数据库里已有的数据可能会怎样。
安全
不会影响任何已有内容。添加表或空列是安全的。
注意
可以执行,但可能因已有数据而失败、让繁忙的表锁住一段时间,或让使用旧名称的代码出错。
破坏性
可能删除或截断现有数据。请仔细看两遍。
JillionDB 检查的所有项目
以下就是你在审阅中会看到的原因。
安全
添加表
新表,不影响现有内容。
安全
添加可选列
添加一个空列,现有行不受影响。
安全
让类型更长,或增加选项
允许更长的值或更多选项,现有数据不受影响。
安全
把列改为可选
允许为空,现有内容不变。
安全
更改默认值
只影响新行。
安全
更改注释
仅为文档说明。
安全
关系随表一起删除
随表一起删除。
安全
重命名自动生成的索引和键名
使自动生成的名称与新名称保持一致。
注意
重命名表或列
使用旧名称的代码在更新前将无法工作。
注意
添加没有默认值的必填列
如果表中已有数据行,此操作会失败,因为它们没有该列的值。
注意
添加需要填充每一行的列
会为每一行填充值,这将重写整张表并在执行期间锁表。
注意
改为更大的类型
将整张表重写为更大的类型,执行期间会锁表。
注意
在带时区和不带时区的时间之间切换
现有时间将按服务器时区进行转换。
注意
更改数据库特有的类型
更改了特定数据库的类型,请确认现有值可以转换。
注意
把列改为必填
只要有一行为空就会失败。
注意
更改新 ID 的生成方式
更改新 ID 的生成方式,可能与现有 ID 冲突。
注意
添加不允许重复的规则
如果现有行已有重复值,此操作会失败。
注意
移除不允许重复的规则
之后可能出现重复值。
注意
更改主键
遇到重复值会失败,指向此表的关联可能也需要更新。
注意
添加索引
在大表上创建索引期间会阻止写入。
注意
移除索引
依赖它的查询可能变慢。
注意
添加关系
会检查每一行现有数据,只要有不匹配就会失败。
注意
移除关系
数据库将不再检查这些值。
注意
添加检查规则
只要有一行违反规则就会失败。
注意
移除检查规则
数据库将不再强制执行此规则。
注意
更改表选项
可能会重建该表。
注意
SQLite 只能通过重建表来完成的更改
SQLite 会把表复制到一张新表中来完成这些改动。
破坏性
删除表
删除该表及其所有行。
破坏性
删除列
删除该列及其数据。
破坏性
让类型更短或更小
放不下的值会被截断,或导致此改动失败。
破坏性
从列表中移除选项
使用 … 的行会导致此改动失败。
破坏性
改为另一种类型
转换现有值可能失败或丢失数据。
关于整个迁移的说明
注意
包含多个步骤的 MySQL 迁移
MySQL 无法在中途撤销结构改动:某一步失败时,之前的步骤仍会保留。
注意
回滚破坏性更改
回滚会重新创建被删除的表和列,但不会恢复其中的数据。