ruby-on-rails - 使用来自生产的数据播种开发数据库

标签 ruby-on-rails postgresql development-environment production-environment seeding

我正在处理一个使用 Postgresql 的复杂 Rails 应用程序。
从头开始创建种子可能过于复杂(有许多模型和激活步骤只能以非常特定的顺序工作)。

但我确实需要一些非常准确的种子来开发新功能。
有没有办法将一些数据从生产数据库传输到开发数据库?
我也不想为此安装 gems 或修改生产应用程序。

最佳答案

Tonic(免责声明:我在那里工作)有一个用于子集 Postgres 数据库的开源解决方案。它在 Github 上可用,是用 Python 编写的。您可以在这里找到它:https://github.com/TonicAI/condenser .

子集化是一个难题,因为您必须保持参照完整性。我们的方法是构建数据库的网络图,其中表是节点,FK 关系是有向边(从父到子)。然后我们通过 topological sort 对图表进行排序并开始机会性地删除行。那里有一些细微差别,但也有一些陷阱。例如,有向图可以包含循环,当这种情况发生时,拓扑排序将失败。它还有很多内容,您可以阅读更多相关信息 here (或者只是克隆 repo 并拥有它)。

关于ruby-on-rails - 使用来自生产的数据播种开发数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51062950/

相关文章:

ruby-on-rails - rails 4 : How do you run a Postgres database downloaded from Heroku on my local machine?

ruby-on-rails - 错误消息不显示回形针验证错误消息

ruby-on-rails - Rails 委托(delegate)更新调用

ruby-on-rails - ruby rails : How to start the WEBrick server automatically on Windows in background?

c# - 在 PostgreSQL 中使用特定模式的 Linq 和实体迁移

java - Android - 单击按钮时播放声音 - 强制关闭

javascript - 选择性页面无限滚动

node.js - 无法连接到数据库 - NEST.JS 和 TypeORM

php - 如何在 PostgreSQL 中将列设置为常量字段?

javascript - 在生产环境中管理快速服务器依赖关系的最佳方法