如何重新运行 Diesel 迁移?
How to re-run Diesel migrations?
我将 Diesel 与 Postgre 一起使用SQL。我添加了迁移,它们运行良好,输出 schema.rs
文件中的所有内容。直到我注意到我在某些迁移中缺少 created_at
字段。我编辑了 SQL 和 运行 diesel migration run
。什么都没发生,没有错误,没有成功。有没有办法解决这个问题并重新运行 我的迁移?
命令
diesel migration run
仅应用迁移。如果您想恢复迁移,您必须 运行:
diesel migration revert
结合使用这些命令,您可以像这样“重做”已应用的迁移:
diesel migration revert
diesel migration run
这个模式很常见,diesel
提供了这个快捷命令,它的作用与上面两个命令相同:
diesel migration redo
注意:所有这些命令一次只能运行、还原或重做一个迁移。如果您想 运行、还原或重做多个迁移或所有迁移,您将不得不多次手动 运行 命令,直到 diesel
的新版本发布发布并且 this feature 可用,届时您只需 运行ning:
即可重做所有迁移
diesel migration redo --all
注意:只有为您打算还原或重做的每个迁移编写 down.sql
,所有命令才能正常工作。
正确的过程是创建一个新的迁移 (diesel migration generate
),然后将 ALTER 语句添加到 up.sql 以更改现有架构。然后你可以简单地diesel migration run
。完成后,您可以使用 diesel print-schema
获取更新的代码以写入 schema.rs.
我将 Diesel 与 Postgre 一起使用SQL。我添加了迁移,它们运行良好,输出 schema.rs
文件中的所有内容。直到我注意到我在某些迁移中缺少 created_at
字段。我编辑了 SQL 和 运行 diesel migration run
。什么都没发生,没有错误,没有成功。有没有办法解决这个问题并重新运行 我的迁移?
命令
diesel migration run
仅应用迁移。如果您想恢复迁移,您必须 运行:
diesel migration revert
结合使用这些命令,您可以像这样“重做”已应用的迁移:
diesel migration revert
diesel migration run
这个模式很常见,diesel
提供了这个快捷命令,它的作用与上面两个命令相同:
diesel migration redo
注意:所有这些命令一次只能运行、还原或重做一个迁移。如果您想 运行、还原或重做多个迁移或所有迁移,您将不得不多次手动 运行 命令,直到 diesel
的新版本发布发布并且 this feature 可用,届时您只需 运行ning:
diesel migration redo --all
注意:只有为您打算还原或重做的每个迁移编写 down.sql
,所有命令才能正常工作。
正确的过程是创建一个新的迁移 (diesel migration generate
),然后将 ALTER 语句添加到 up.sql 以更改现有架构。然后你可以简单地diesel migration run
。完成后,您可以使用 diesel print-schema
获取更新的代码以写入 schema.rs.