ruby-on-rails – Rails – 将数据库转储到文件中
发布时间:2020-12-17 01:57:02 所属栏目:百科 来源:网络整理
导读:我想要做的是将数据库转储到自定义创建的.rb文件中. 我发现了一个seed_dump gem,允许我这样做: rails db:seed:dump FILE=db/seeds/my_db_file_name.rb 然后我注意到我的数据库是我们的订单,所以我在SO上找到了这个包括id: rails db:seed:dump FILE=db/seed
我想要做的是将数据库转储到自定义创建的.rb文件中.
我发现了一个seed_dump gem,允许我这样做: rails db:seed:dump FILE=db/seeds/my_db_file_name.rb 然后我注意到我的数据库是我们的订单,所以我在SO上找到了这个包括id: rails db:seed:dump FILE=db/seeds/my_db_file_name.rb EXCLUDE=[] 看起来很好,直到我想将新记录添加到我的数据库.原来,重置主键解决了这个问题: def reset_pk ActiveRecord::Base.connection.tables.each do |t| ActiveRecord::Base.connection.reset_pk_sequence!(t) end redirect_to root_url end 我现在想要做的是简化转储过程,就像现在一样,每次我转储数据库时记录都是“乱序”,我将在下面解释. 我们假设我有两个模型:Lab和Offer.实验室可以有很多优惠.因此,为了创建Offer对象,我首先要创建一个Lab对象.但是当我转储模式时,我的文件看起来像这样: Offer.create... Offer.create... Offer.create Lab.create... Lab.create... Lab.create... 如果我尝试播种它,它将不会这样做,因为优惠是在实验室之前创建的,它应该是另一种方式. 我的问题是,有没有办法在转储数据库时实际保持关系,以便首先创建实验室? 编辑 我设法做了这样的事情: rails db:seed:dump FILE=db/seeds/my_db_file_name.rb EXCLUDE=[] MODELS="Lab,Offer" 这个保留了我想要的顺序,但我想知道是否有一个简单的方法(如果有15个,20个模型而不是2个). 解决方法
您可以按照您希望的顺序尝试一次转储/恢复一个表.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |