使用限制和所有关联转储一个数据库表的最佳方法

zol*_*ter 3 mysql yaml dump ruby-on-rails mysqldump

class Profile < ActiveRecord::Base
  has_many :favorites, :dependent => :destroy
  has_many :friends, :dependent => :destroy
end
Run Code Online (Sandbox Code Playgroud)

我需要像这样的smth:

mysqldump --opt --where="1 limit 1000" -uroot development profiles  > profiles.sql
Run Code Online (Sandbox Code Playgroud)

但是这个转储包含(按预期)只有1000个配置文件行,没有关联的朋友,收藏夹.

我应该使用YAML还是我应该怎么做?

zol*_*ter 5

记录前5000条记录:

mysqldump --opt --where="1 limit 5000" -uroot development profiles  > profiles.sql 
Run Code Online (Sandbox Code Playgroud)

然后找到所有与此记录相关的朋友:

mysqldump --opt --lock-all-tables --where="profile_id IN (SELECT * FROM (SELECT id FROM profiles LIMIT 5000) temp);" -uroot development friends  > friends.sql
Run Code Online (Sandbox Code Playgroud)