删除并重新创建一个表(在Heroku上)

时间:2011-03-07 18:55:32

标签: sql ruby-on-rails ruby-on-rails-3

我的应用程序处于测试阶段,我一直在对涉及新模型的功能进行有限测试。经过大量的测试后,我不得不进行结构性更改,使旧数据无法正常运行。

我需要做的就是删除并重新创建一个表。我知道我可以在迁移中执行此操作,但这看起来像是一个黑客。在本地开发副本中,我只使用db:reset,但在测试版应用中,我不想丢失除此之外的任何表格中的数据。

这是指示生产应用程序删除并重新创建单个表的简单方法。在我的情况下,我正在使用Heroku进行部署,以防影响您如何解决此问题。

4 个答案:

答案 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

你已经完成了。