我的应用程序处于测试阶段,我一直在对涉及新模型的功能进行有限测试。经过大量的测试后,我不得不进行结构性更改,使旧数据无法正常运行。
我需要做的就是删除并重新创建一个表。我知道我可以在迁移中执行此操作,但这看起来像是一个黑客。在本地开发副本中,我只使用db:reset
,但在测试版应用中,我不想丢失除此之外的任何表格中的数据。
这是指示生产应用程序删除并重新创建单个表的简单方法。在我的情况下,我正在使用Heroku进行部署,以防影响您如何解决此问题。
答案 0 :(得分:7)
要在Heroku上清空表而不更改架构,请在应用程序的目录中
$ heroku run console
Ruby console for myap.heroku.com
>> ModelName.delete_all
>> exit
答案 1 :(得分:1)
我知道我可以在迁移中执行此操作,但这看起来像是一个黑客。
这不是黑客攻击。这正是迁移的目的所在。
答案 2 :(得分:0)
您需要重新运行该表的迁移才能进行结构更改。我以前没有使用过ActiveRecord,但我也会使用heroku控制台中的ModelName.delete_all
删除表中的数据。
答案 3 :(得分:0)
heroku run console
irb(main):001:0> ModelName.delete_all
你已经完成了。