加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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个).

解决方法

您可以按照您希望的顺序尝试一次转储/恢复一个表.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读