ruby-on-rails – Rake任务列出给定模型的所有迁移
发布时间:2020-12-16 23:15:54 所属栏目:百科 来源:网络整理
导读:在终端上,是否有一个rake任务列出已在特定模型上运行的所有迁移?如果没有,我该怎么做? 当我运行rake -T时,rake db:migrate:status似乎是正确的答案,但它给了我Migration Name作为其中一列.虽然公司名称添加徽标确实表明了公司模型,但并非所有迁移都有这
在终端上,是否有一个rake任务列出已在特定模型上运行的所有迁移?如果没有,我该怎么做?
当我运行rake -T时,rake db:migrate:status似乎是正确的答案,但它给了我Migration Name作为其中一列.虽然公司名称添加徽标确实表明了公司模型,但并非所有迁移都有这样明确的名称.例如,更改内容的数据类型.我有400多个迁移文件,所以这个功能真的很有帮助. 所以,理想的输出是: database: abcd_development Status Migration ID Migration Name Model Name ---------------------------------------------------------- 谢谢! 解决方法
如果你一直坚持迁移命名约定,你可以通过grep传递rake db:migrate:status的输出:
rake db:migrate:status | grep 'compan' 但这并不完美 – 迁移名称不需要与他们实际做的事情有任何关系 – 迁移可能会将列“名称”添加到“公司”表并命名为EvacuateWeaselTubes并且运行得很好. 如果您想构建一个可以解决此问题的任务,则必须解析每个迁移文件以查看其更改内容.由于有许多方法可以指定迁移中的更改(例如add_column,create_table块或调用execute(‘CREATE whatever’)),您可能想要搜索Model.table_name的提及,然后检查schema_migrations表,看看它是否已经运行. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |