我可以想象,对于像我这样的懒人,只需使用一个rake(终端)命令就可以将任何伪数据填充到db中,这非常容易。
我了解Faker,Populator和其他人,但据我所知,所有人都需要编写一些(原始的)代码来使数据更加人性化(直接和手动定义随机数据的类型:emalis,名称,价格等)。
在大多数情况下这是有意义的,但现在在我的情况下,我可以用任何字符串填充mysql varchar字段,用任何长文本填充文本字段,int - 用数字等等
有什么建议吗?
答案 0 :(得分:1)
如果速度是你的目标,你应该做两件事:
答案 1 :(得分:0)
一些示例代码,说明如何执行此操作:
SKIP_COLUMNS = %w(id created_at updated_at)
RECORDS_COUNT = 10
# random data to fill
int = rand(1..100)
varchar = 'lorem'
text = 'big lorem'
# get models
@models = ActiveRecord::Base.connection.tables.collect {|t| t.underscore.singularize.camelize }
@models.select {|m| m.constantize rescue @models.delete(m) }
# fill in data
@models.map(&:constantize).each do |model|
model.columns_hash.each do |column|
next if SKIP_COLUMNS.include?(column.first)
# column_name = column.first
# column_type = column.last.type
RECORDS_COUNT.times do
record = model.new
case column.last.type
when :integer
record.send("#{column.first}=", int)
when :string
record.send("#{column.first}=", varchar)
when :text
record.send("#{column.first}=", text)
end
record.save!
end
end
end
你可以把它放到佣金任务上。