我使用的是Ruby on Rails 3.0.9,我想为production database添加一些记录without re-building all the database(也就是说,不删除所有现有记录,只添加一些尚未存在的记录).我之所以这么做,是因为需要新的数据才能使应用程序正常运行.

因此,由于我正在使用Capistrano gem,我在控制台中运行cap -T命令,以列出所有可用的命令,并了解如何实现我的目标:

$ cap -T
=> ...
=> cap deploy:seed          # Reload the database with seed data.
=> ...

我不确定"用种子数据重新加载数据库"中的"重新加载"一词句子所以,我的问题是:if I run the 100 command in the console on my local machine will the seeding process delete all existing data in the production database and then populate it or will that command just add the new data in that database as I aim to do?

推荐答案

如果您使用的是bundler,那么capistrano任务应该是:

namespace :deploy do
  desc "reload the database with seed data"
  task :seed do
    run "cd #{current_path}; bundle exec rake db:seed RAILS_ENV=#{rails_env}"
  end
end

它可能被放在一个单独的文件中,比如lib/deploy/seed.rb,并包含在部署中.使用以下命令创建rb文件:

load 'lib/deploy/seed'

Ruby-on-rails相关问答推荐

将两个日期之间的差值转换为Ruby中的iso8601持续时间(如果需要,还可以使用Rails)

为什么 2 个关键字参数被解释为 1?

使用嵌套属性时如何自动将父 ID 分配为外键?

如何在测试期间为 Rails 应用程序启用 Rails.cache 会话对象

如何获取 Rails 表单构建器将为某个字段生成的 HTML名称属性?

设计:手动加密密码并直接存储

在一行中更改多个对象属性

RSpec 设置会话对象

渲染:动作和渲染:模板之间的区别

是否可以在 Rails 中否定范围?

指定要从 before_filter 中排除的控制器

从 Rails 模型内部访问翻译文件 (i18n)

带有查询字符串参数的 Rails 动作缓存

如何在 Rails 1.2.3 中使复选框默认为选中?

link_to 将参数与 url 一起发送并在目标页面上抓取它们

如何对这个哈希数组进行分组?

是否可以使用 Rails 迁移重命名索引?

Rails 生成 has_many 关联

将数组传递到 hidden_​​field ROR

无论何时 gem 在 Heroku 上运行 cron 作业(job)