如何重新运行 Diesel 迁移?

问题描述

我在 Postgresql 中使用 Diesel。我添加了我的迁移,它们运行良好,输出 schema.rs 文件中的所有内容。直到我注意到我在某些迁移中遗漏了 created_at 字段。我编辑了 sql 并运行了 diesel migration run。什么都没发生,没有错误,没有成功。有没有办法解决这个问题并重新运行我的迁移?

解决方法

命令

diesel migration run

仅适用于迁移。如果您想恢复迁移,您必须运行:

diesel migration revert

结合使用这些命令,您可以像这样“重做”已应用的迁移:

diesel migration revert
diesel migration run

这种模式很常见,diesel 提供了这个快捷命令,与上面的 2 个命令做同样的事情:

diesel migration redo

注意:所有这些命令一次只能运行、恢复或重做一个迁移。如果您想运行、还原或重做多次迁移或所有迁移,您将不得不多次手动运行命令,直到新版本的 diesel 发布并且 this feature 变为可用,当您只需运行以下命令即可重做所有迁移时:

diesel migration redo all

注意:只有在您为要还原或重做的每个迁移编写了 down.sql 后,所有命令才能正常工作。