非常简单的Rails迁移概念

时间:2017-10-12 01:56:17

标签: ruby-on-rails ruby

我觉得这是一个非常简单的问题,但我环顾四周,无法找到答案。 我有一个我非常喜欢的跑道应用程序。它有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

我的其他数据还可以吗?

1 个答案:

答案 0 :(得分:2)

首先:如果您拥有重要数据,那么在部署之前进行备份。确保这些备份存储在服务器之外的某个地方,以防你真的拙劣的东西并彻底丢弃机器,它会丢失所有东西。确保这些备份正常工作并包含您期望的所有数据。准备最糟糕的结果:您部署的每个系统都会爆炸。

现在假设您正确地执行了操作,这意味着一旦您应用了迁移,您不再在源代码中对它们进行任何更改,那么您应该能够干净地应用 new < / em>使用db:migrate进行迁移。

您想要预先测试这是否有效。如果您已经对生产模式进行了备份,那么您应首先对其进行测试,以便在部署时不会出现任何丑陋的惊喜。如果一切都结束了,你就可以上线了。

永远不要在生产系统上使用

pg:reset。它可以并将废弃您的所有数据。这对于您的开发系统来说非常有用,可以快速清理测试数据并重建干净的数据库。