Ruby 在 Rails - 来自开发数据库的种子
Ruby on Rails - seed from development database
我现在已经部署我的应用程序到我的网站。在我的 Development ENV
中,我有一个名为 cities
的 table,包含 47K cities/records。我怎样才能 seed
所有这些城市到我的 Production ENV
.
我只想做一次 seed
并且只针对 cities
数据库。
您可以使用 gem 例如 https://github.com/rroblak/seed_dump 转储所选 table 然后在生产服务器上 运行 RAILS_ENV=production rake db:seed
播种数据。
rake db:seed:dump MODELS=cities APPEND=true
看起来像您需要的命令 运行 将数据转储到种子文件中。
否则您可以将数据库 table 导出为 MySQL 转储并将其导入生产数据库。
你说你只需要在生产中做一次,但通常任何其他开发人员(或你自己)可能需要再做一次,所以我真的会把它变成一个种子文件或一个CSV.
以下是创建 CSV 文件然后将其导入生产环境的方法。
require 'csv'
attributes = %w{name country}
CSV.open('cities.csv','w') do |csv|
csv << attributes
City.find_each do |city|
csv << attributes.map{ |attr| city.send(attr) }
end
end
end
我现在已经部署我的应用程序到我的网站。在我的 Development ENV
中,我有一个名为 cities
的 table,包含 47K cities/records。我怎样才能 seed
所有这些城市到我的 Production ENV
.
我只想做一次 seed
并且只针对 cities
数据库。
您可以使用 gem 例如 https://github.com/rroblak/seed_dump 转储所选 table 然后在生产服务器上 运行 RAILS_ENV=production rake db:seed
播种数据。
rake db:seed:dump MODELS=cities APPEND=true
看起来像您需要的命令 运行 将数据转储到种子文件中。
否则您可以将数据库 table 导出为 MySQL 转储并将其导入生产数据库。
你说你只需要在生产中做一次,但通常任何其他开发人员(或你自己)可能需要再做一次,所以我真的会把它变成一个种子文件或一个CSV.
以下是创建 CSV 文件然后将其导入生产环境的方法。
require 'csv'
attributes = %w{name country}
CSV.open('cities.csv','w') do |csv|
csv << attributes
City.find_each do |city|
csv << attributes.map{ |attr| city.send(attr) }
end
end
end