我刚刚将我的 rails 应用程序部署到 Linode VPS,并且想知道将记录添加到数据库的最佳方式是什么。
我有诸如类别之类的表,我想填充这些表。
我想到了使用 csv 或 sql 转储文件的 Taps gem。
我想知道是否有任何工具可以解决这个问题?
谢谢
我刚刚将我的 rails 应用程序部署到 Linode VPS,并且想知道将记录添加到数据库的最佳方式是什么。
我有诸如类别之类的表,我想填充这些表。
我想到了使用 csv 或 sql 转储文件的 Taps gem。
我想知道是否有任何工具可以解决这个问题?
谢谢
为此,有所谓的种子文件,默认为:
db/seeds.rb
您可以在此处添加条目(种子文件中有一个示例),您可以在部署后使用 rake 任务生成这些条目:
rake db:seed
您可能也在使用捆绑器,因此请使用:
bundle exec rake db:seed
如果有大量种子,您始终可以创建多个文件,请参阅这篇关于处理大型种子文件的博文。
但是,如果您处于应用程序中已经存在的数据至关重要的状态,并且您正在更改服务器或数据库驱动程序,您想看看yaml_db gem,它提供了一个很好的方法来将现有数据从您的实际数据库中抽象出来驱动程序并将其导出到 .yaml 文件中,您可以稍后将其导入,例如:在新服务器上部署后。
请参阅Railscast - #179关于播种。
rails 方法是使用 db/seeds.rb 中的种子数据,然后使用rake db:seed
.
您还可以使用 sql 转储文件并通过发出恢复mysql -u <user> -p <database_name> < <mysql_dump_file>
Easy Reference Data gem 类似于 db:seed,但如果条目已经存在,它将更新记录。它还可以与 Capistrano 轻松集成。
完全披露:我工作的公司开发了宝石。