按照https://stackoverflow.com/a/24496452/102675中的说明,我结束了以下内容:
namespace :db do
desc 'Drop, create, migrate, seed and populate sample data'
task seed_sample_data: [:drop, :create, :migrate, :seed, :populate_sample_data] do
puts 'Sample Data Populated. Ready to go!'
end
desc 'Populate the database with sample data'
task populate_sample_data: :environment do
puts Inspector.column_names.include?('how_to_fix')
# create my sample data
end
end
正如您所料,如果我运行true
bundle exec rake db:populate_sample_data
但如果我运行bundle exec rake db:seed_sample_data
,我会获得所有迁移输出,然后false
。换句话说,我无法看到Inspector
属性how_to_fix
,即使它确实存在,正如另一个rake run所证明的那样。我的属性去了哪里?
答案 0 :(得分:2)
我的猜测是这是一个“缓存”问题。你能试试以下吗?
task populate_sample_data: :environment do
Inspector.reset_column_information
# ...
end
P.S。我们曾经遇到类似的问题,使用具有完全相同模式的不同数据库(除了某些列以外)