gpt4 book ai didi

ruby-on-rails - Rake任务列出给定模型的所有迁移

转载 作者:行者123 更新时间:2023-12-04 13:51:11 25 4
gpt4 key购买 nike

在终端上,是否有rake任务来列出已在特定模型上运行的所有迁移?如果没有,我该如何 build 一个?

当我运行rake -T时,rake db:migrate:status似乎是正确的答案,但是它为我提供了迁移名称作为列之一。尽管名称Add logo to company确实表示公司模型,但并非所有迁移都具有这样的显式名称。例子是Change data type for content。我有400个奇怪的迁移文件,因此此功能将非常有用。

因此,理想的输出将是:

database: abcd_development

Status Migration ID Migration Name Model Name
----------------------------------------------------------

谢谢!

最佳答案

如果您一直遵循迁移命名约定,则可以通过rake db:migrate:status传递grep的输出:

rake db:migrate:status | grep 'compan'

但是,这并不是完美的-迁移名称不需要与它们的实际操作有任何关系-迁移可以将“名称”列添加到“companies”表中,并命名为 EvacuateWeaselTubes并仍然可以正常运行。

如果要构建可以解决此问题的任务,则必须解析每个迁移文件以查看其更改。由于有很多方法可以指定迁移中的更改(例如 add_columncreate_table块或调用 execute('CREATE whatever')),因此您可能想搜索提及 Model.table_name的内容,然后检查 schema_migrations表以查看是否已运行。

关于ruby-on-rails - Rake任务列出给定模型的所有迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18762517/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com