这更是一个逻辑问题。
我想在Ruby on Rails中创建一个数据库(模型),其中保存的信息在重置数据库时不会被删除。同时,我还希望当我推送我的项目时,该数据库中保存的信息自动推送到生产环境。
我已经搜索过了,但没有找到相关的内容,感觉我漏掉了一些显而易见的东西。我该如何实现呢?
提前感谢您的帮助!
这更是一个逻辑问题。
我想在Ruby on Rails中创建一个数据库(模型),其中保存的信息在重置数据库时不会被删除。同时,我还希望当我推送我的项目时,该数据库中保存的信息自动推送到生产环境。
我已经搜索过了,但没有找到相关的内容,感觉我漏掉了一些显而易见的东西。我该如何实现呢?
提前感谢您的帮助!
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文档中填充表的代码。
除了 jamesw
提出的 seeds
想法外,您可能希望使用静态数据存储(通常为 yml
格式)将数据保存为常量。
这在 Rails 4.1 的新功能 secrets.yml
中最为明显,也有更多的宝石可以帮助处理此类问题。通常使用 rails-config
:
#app/settings.yml
option:
setting: "value"
setting2: "value"
这样可以创建一系列数据(我们用它来存储公司的详细信息,如地址等),可以通过 Settings.option.setting
访问: