Rails Database seeds.rb "remembers"旧数据



我有以下seeds.rb文件:

require 'spreadsheet'

allEng1 = [] #english
allSpa1 = [] #english to spanish
allSpa2 = [] #spanish
allEng2 = [] #spanish to english
totalWords = 4999
#Lang.truncate_me!
    book1 = Spreadsheet.open('FinishedEnglishListNoDuplicatesWithFrequencyWithPOSReadyForDB6.xls')
    sheet1 = book1.worksheet 'Sheet1'
    book2 = Spreadsheet.open('finishedSpanish.xls')
    sheet2 = book2.worksheet 'Sheet1'
    for i in 0..totalWords
      vrow  = sheet1.row(i)
      allEng1[i] = vrow[0]
      allSpa1[i] = vrow[1]
      vrow = sheet2.row(i)
      allSpa2[i] = vrow[0]
      allEng2[i] = vrow[1]
    end
    for j in 0..totalWords
      Lang.create(english: allEng1[j], english_to_spanish: allSpa1[j], spanish: allSpa2[j], spanish_to_english: allEng2[j])
    end

当我从Lang数据库中删除所有内容并运行seeds.rb时,它似乎"记住"了数据库中以前的单词。

例如,在我的电子表格"finishedSpanish.xls"中,我将西班牙语单词"yo"更新为"yo",但当我运行以下命令时,我仍然会在DB中得到"yo":

Lang.delete_all

rakedb:seed(这个命令运行得非常快,这让我认为旧数据被缓存在某个地方,而没有加载更新的信息)

知道为什么吗?

如果没有回调导致下降,并且由于不可能记住已删除的数据库,因此数据库不是问题的根源。由于delete_all运行的是直接SQL Delete语句,甚至不涉及回调。

从目录中删除所有xls文件(同时清空垃圾桶以避免tmp文件存在)。然后放置新的。

最新更新