如何重新运行 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.