2017-10-12 55 views
0

我觉得这是一个超级简单的问题,但我环顾四周,找不到答案。 我有一个我非常喜欢的跑轨应用程序。它有3或4个模型,我不想擦除或替换数据。非常简单的导轨迁移概念

在构建应用程序,当我添加了新功能,我只想做一个:

git push heroku 
heroku pg:reset DATABASE 
heroku run rails db:migrate 
heroku run rails db:seed 

显然我不想这样做,因为它会抹去我的数据。

我确实有一个新的表格/模型现在我想添加。它不会与其他模型进行交互。

请问我只是做:

git push heroku 
heroku run rails db:migrate 

我的其余数据是好的?

回答

2

第一件事:如果您有重要数据,一如既往,在部署之前进行备份。确保这些备份存储在服务器的某个地方,以防您真的弄脏东西并将机器完全垃圾丢失。确保这些备份工作并包含您所期望的所有数据。准备最糟糕的结果:您部署的每个系统都要爆炸。

现在,假设你正在做正确的事情,这意味着一旦应用迁移不再使你的源代码给他们的任何变化,那么你应该能够干净的应用迁移与db:migrate

你会想要测试,这预先工作。如果您已经对生产模式进行了备份,则应该首先进行测试,以便在部署时没有难以预料的惊喜。如果一切都检查出来,你可以去住。

pg:reset决不能在生产系统上使用。它可以并且会垃圾你的所有数据。这对您的开发系统来说只是一个清理测试数据和重建干净的数据库的快速方法。