使用 Seed.rb 时的最佳实践

发布于 2024-11-02 22:27:17 字数 824 浏览 0 评论 0原文

我在理解如何在 Rails 中使用 seed.rb 脚本时遇到一些困难。

到目前为止,我每次部署应用程序时都使用它来填充我的数据库。

像这样。

seed.rb

["Video", "Tv"].each do |thing|
  Category.create(name: thing)
end

category.rb

class Category < ActiveRecord::Base
  validates_uniqueness_of :name
end

该脚本现在可以在每次部署或拉取时运行。 开发团队中的任何人现在都可以添加自己的类别,而不必担心重复。

像这样。

第一人

  • Table 类别添加到seed.rb
  • 提交并推动掌握。

二人

  • 拉大师。
  • 运行 rake db:migraterake db:seed 以确保本地数据库是最新的。
  • 将应用程序部署到生产服务器。 rake db:seed 正在服务器上运行,以确保数据库是最新的。

这个工作流程可以吗?如果不行,我应该把新数据放在哪里,以确保每个开发人员都有最新的数据库?

I'm having some difficulties understanding how to use the seed.rb script in rails.

So far, I've used it to populate my database every time i deploy my application.

Like this.

seed.rb

["Video", "Tv"].each do |thing|
  Category.create(name: thing)
end

category.rb

class Category < ActiveRecord::Base
  validates_uniqueness_of :name
end

The script can now be runned every deploy or pull.
Anyone in the dev team can now add their own category without have to worry about duplications.

Like this.

Person one

  • Adding the Table category to seed.rb.
  • Commit and push to master.

Person two

  • Pull master.
  • Run rake db:migrate and rake db:seed to ensure that the local database is up-to-date.
  • Deploy application to production server. rake db:seed is being runned on the server to ensure an up-to-date database.

Is this workflow okay, if not, where should I put the new data to ensure that every developer has an up-to-date database?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

掐死时间 2024-11-09 22:27:17

我建议编写您的种子,以便它可以多次运行,而无需尝试创建重复的类别...

["Video", "Tv"].each do |thing|
  Category.find_or_create_by_name(thing)
end

I would recommend writing your seed so that it can be run more than once without trying to create duplicate categories...

["Video", "Tv"].each do |thing|
  Category.find_or_create_by_name(thing)
end
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文