如何重新运行 Diesel 迁移?

Hen*_*nry 10 sql postgresql rust rust-diesel

我将 Diesel 与 PostgreSQL 一起使用。我添加了我的迁移,它们工作正常,输出schema.rs文件中的所有内容。直到我注意到我遗漏了created_at一些迁移中的字段。我编辑了 SQL 并运行了diesel migration run. 什么也没发生,没有错误,没有成功。有没有办法解决这个问题并重新运行我的迁移?

kfe*_*v91 10

命令

diesel migration run
Run Code Online (Sandbox Code Playgroud)

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

diesel migration revert
Run Code Online (Sandbox Code Playgroud)

一起使用这些命令,您可以“重做”已应用的迁移,如下所示:

diesel migration revert
diesel migration run
Run Code Online (Sandbox Code Playgroud)

这种模式很常见,它diesel提供了与上述 2 个命令执行相同操作的快捷命令:

diesel migration redo
Run Code Online (Sandbox Code Playgroud)

注意:所有这些命令一次仅运行、恢复或重做一个迁移。如果您想运行、恢复或重做多个迁移或所有迁移,则必须多次手动运行命令,直到diesel发布新版本并且此功能可用时,您才能只需运行以下命令即可重做所有迁移:

diesel migration redo --all
Run Code Online (Sandbox Code Playgroud)

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

  • 哦,[此 PR 已于 3 个月前合并](https://github.com/diesel-rs/diesel/pull/2401),但不幸的是,柴油自那时以来尚未发布,因此该功能尚不可用。无论需要恢复多少个迁移,您都必须手动运行“diesel 迁移恢复”,然后运行“diesel 迁移运行”来重做所有迁移。 (2认同)