我试图重命名表中的一些列,也想添加一些新的字段,但即使我改变了该表的迁移文件中的代码,它也没有反映表中的任何更改。未执行迁移,数据库架构已为最新。这是我从终端得到的,但在我生成(创建)新的迁移文件并在其中写入require代码后,它工作正常。还有其他选择吗?如果我想在数据库中做一些小的更改,每次都需要创建迁移文件吗?做这件事的最好方法是什么?
8hhllhi21#
有两个选项,要么删除数据库文件(这将删除数据库中的现有数据),然后运行修改的迁移,更改应反映出来。或者另一个选择是创建新的迁移文件,您已经这样做了,并且工作正常。原因是最后运行的迁移也作为数据库元数据存储,作为您使用的任何框架的一部分,并且迁移是在以前的迁移之上完成的,这就是为什么它没有检测到现有迁移文件中的更改。在实践中,无论如何都不应该修改现有的迁移文件。希望这能帮上忙。
1条答案
按热度按时间8hhllhi21#
有两个选项,要么删除数据库文件(这将删除数据库中的现有数据),然后运行修改的迁移,更改应反映出来。或者另一个选择是创建新的迁移文件,您已经这样做了,并且工作正常。
原因是最后运行的迁移也作为数据库元数据存储,作为您使用的任何框架的一部分,并且迁移是在以前的迁移之上完成的,这就是为什么它没有检测到现有迁移文件中的更改。在实践中,无论如何都不应该修改现有的迁移文件。
希望这能帮上忙。