gpt4 book ai didi

ruby-on-rails - Rails - 将数据库转储到文件中

转载 作者:数据小太阳 更新时间:2023-10-29 07:38:55 24 4
gpt4 key购买 nike

我想做的是将数据库转储到自定义创建的 .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

我现在想做的是简化转储过程,至于现在,每次转储数据库时,记录都是“乱序”的,我将在下面解释。

假设我有两个模型:LabOffer。实验室可以有很多优惠。因此,为了创建一个 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 个)。

最佳答案

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

关于ruby-on-rails - Rails - 将数据库转储到文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40095459/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com