问题描述
我在 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
后,所有命令才能正常工作。