代码之家  ›  专栏  ›  技术社区  ›  Tom

DataMapper导入主键

  •  3
  • Tom  · 技术社区  · 14 年前

    我的模型是这样的:

    class Staff
    
        include DataMapper::Resource
    
        property  :staff_id, String, :key => true
        property  :full_name, String
    
    end
    
    class Project
    
      include DataMapper::Resource
    
      property  :project_id, Integer, :key => true
      property  :title, String
      property  :status, String
    
     belongs_to  :staff
    
    end
    

    有没有办法阻止datamapper抱怨这个问题,或者我应该在导入运行之前删除.db文件并重新创建一个空的.db文件?如果是这样,最简单的方法是什么。

    2 回复  |  直到 14 年前
        1
  •  2
  •   dkubb    14 年前

    DataMapper.auto_migrate! 将表吹走,然后重新创建与当前模型状态匹配的表。新表将没有以前运行的任何数据。

    因此,在定义模型之后,但在开始导入数据之前,请执行以下操作:

    DataMapper.finalize.auto_migrate!
    
        2
  •  0
  •   David Schmitt    14 年前

    如果您从导入创建完整的数据库,我真的建议您完全取消数据库,以避免早期运行的溢出。这还可以让您的builddb代码路径得到很好的测试。