Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 利用生产数据建立播种发展数据库_Ruby On Rails_Postgresql_Development Environment_Production Environment_Seeding - Fatal编程技术网

Ruby on rails 利用生产数据建立播种发展数据库

Ruby on rails 利用生产数据建立播种发展数据库,ruby-on-rails,postgresql,development-environment,production-environment,seeding,Ruby On Rails,Postgresql,Development Environment,Production Environment,Seeding,我正在处理一个使用Postgresql的复杂Rails应用程序。 从头开始创建种子可能太复杂了(有许多模型和激活步骤只能按非常特定的顺序工作) 但我确实需要一些非常精确的种子来开发新功能。 是否有办法将一些数据从生产数据库传输到开发数据库? 我也不希望仅仅为了这个而安装gems或修改生产应用程序 是否有办法将一些数据从生产数据库传输到开发数据库 仅转储特定表,并使用转储的sql文件为开发数据库种子: pg_dump -d production_database -t table_one -t t

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

但我确实需要一些非常精确的种子来开发新功能。
是否有办法将一些数据从生产数据库传输到开发数据库?
我也不希望仅仅为了这个而安装gems或修改生产应用程序

是否有办法将一些数据从生产数据库传输到开发数据库

仅转储特定表,并使用转储的sql文件为开发数据库种子:

pg_dump -d production_database -t table_one -t table_two ... > /tmp/dev_dump.sql 

但要小心,桌子上经常有外键和其他工作人员

是否有办法将一些数据从生产数据库传输到开发数据库

仅转储特定表,并使用转储的sql文件为开发数据库种子:

pg_dump -d production_database -t table_one -t table_two ... > /tmp/dev_dump.sql 

但要小心,表通常有外键和其他工作人员。

Tonic(免责声明:我在那里工作)有一个用于设置Postgres数据库子集的开源解决方案。它在Github上可用,并且是用Python编写的。你可以在这里找到它:

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

Toni(免责声明:我在那里工作)有一个用于子集Postgres数据库的开源解决方案。它在Github上可用,并且是用Python编写的。你可以在这里找到它:


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

下载生产数据库转储并导出到本地数据库。假设您可以访问生产数据库,您应该创建一个转储文件,正如jagdeep所说:“pg_dump production_dbname>dumpfile”然后,您可以使用此处的dev dbs名称通过“psql dev_dbnamedumpfile”然后,您可以在此处使用dev dbs名称通过:“psql dev_dbname