Ruby on Rails中的永久性数据库

4

这更是一个逻辑问题。

我想在Ruby on Rails中创建一个数据库(模型),其中保存的信息在重置数据库时不会被删除。同时,我还希望当我推送我的项目时,该数据库中保存的信息自动推送到生产环境。

我已经搜索过了,但没有找到相关的内容,感觉我漏掉了一些显而易见的东西。我该如何实现呢?

提前感谢您的帮助!

2个回答

4
你可以使用 db/seeds.rb 和 rake db:seed 命令向数据库添加数据。
根据官方文档。
Rails has a 'seeds' feature that should be used for seeding a database with initial data. It's a really simple feature: just fill up db/seeds.rb with some Ruby code, and run rake db:seed:
5.times do |i|
  Product.create(name: "Product ##{i}", description: "A product.")
end

This is generally a much cleaner way to set up the database of a blank application.

引用自 http://edgeguides.rubyonrails.org/migrations.html#migrations-and-seed-data

这将使您能够在迁移时自动重新创建数据,当您转移到生产环境时,它还将为您填充测试数据库,并使开发数据库处于所需状态。

显然,seeds.rb只是一个ruby文件。您可以在其中放置任何喜欢的Ruby代码。例如,从电子表格或xml文档中填充表的代码。


2

rails_config

除了 jamesw 提出的 seeds 想法外,您可能希望使用静态数据存储(通常为 yml 格式)将数据保存为常量。

这在 Rails 4.1 的新功能 secrets.yml 中最为明显,也有更多的宝石可以帮助处理此类问题。通常使用 rails-config

#app/settings.yml
option:
  setting: "value"
  setting2: "value"

这样可以创建一系列数据(我们用它来存储公司的详细信息,如地址等),可以通过 Settings.option.setting 访问:

输入图像描述


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接