【发布时间】:2012-09-28 00:37:34
【问题描述】:
我是使用 db 的新手。我们在服务器上的生产中使用了一个 rails 应用程序。我们继续在本地进行开发。其中一些开发导致向数据库添加内容。为了保持 dbs 同步,我们在本地为我们所做的一切手动编写种子代码,然后我们计划上传种子代码并在服务器上运行 rake 命令。这是这种事情的典型做法吗?有没有一种简单的方法来编写这个种子代码?这似乎既费力又痛苦,我只是浏览数据库以尝试找出最新的更改是什么,然后编写代码希望将相同的数据添加到服务器上的数据库中。谢谢
【问题讨论】:
-
这是您可以通过迁移完成的事情吗(还可以添加到
db/seeds.rb以获取您可能需要进行的任何全新安装,例如新开发人员加入该项目)? -
我不知道。同样,我对此很陌生。我的理解是迁移是为了添加模式,而播种是为了添加数据。这肯定涉及添加数据。也许有用于播种的生成器,例如用于迁移的生成器。或者也许我对它们的理解是不准确的。
-
播种是通过单个文件完成的 -
db/seeds.rb。如果您需要随着时间的推移添加新数据,最好的选择是使用迁移,因为播种旨在仅运行一次。您确实通常使用迁移来更改架构,但根据您的描述,它们似乎也是您最好的选择。 -
任何答案在很大程度上取决于具体情况。例如:您的应用程序是像联系人数据库一样,并且您会获得很多新的 vcard 文件,还是更像是一种服务,它将越来越多的 api 集合在一起以提供通用接口?服务器上的数据是否通过用户、服务、cronjobs、邮件等发生变化?
标签: ruby-on-rails seed