Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.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 - Fatal编程技术网

Ruby on rails 优化演示数据的重置

Ruby on rails 优化演示数据的重置,ruby-on-rails,Ruby On Rails,在我们支持的其中一个应用程序中,我们需要有“真实的演示数据”,供销售人员在演示和销售时使用 我们目前有一个rake任务,每天重置一次这个演示数据,但是它确实非常低效和缓慢(运行大约需要5-10分钟) 我肯定有办法优化生成演示数据的代码(我正计划这样做),但我认为可能有更好的方法来实现这一点 我希望做的是获取重置的输出(即获取原始SQL)。我希望通过这一点,我可以制定一个计划任务,每天直接将演示数据重置到数据库中,而不必加载整个Rails环境并执行一系列ruby方法 这样,我只能在演示数据的性质发

在我们支持的其中一个应用程序中,我们需要有“真实的演示数据”,供销售人员在演示和销售时使用

我们目前有一个rake任务,每天重置一次这个演示数据,但是它确实非常低效和缓慢(运行大约需要5-10分钟)

我肯定有办法优化生成演示数据的代码(我正计划这样做),但我认为可能有更好的方法来实现这一点

我希望做的是获取重置的输出(即获取原始SQL)。我希望通过这一点,我可以制定一个计划任务,每天直接将演示数据重置到数据库中,而不必加载整个Rails环境并执行一系列ruby方法

这样,我只能在演示数据的性质发生变化(这是非常罕见的)时运行慢速任务,以更新我的SQL


这是最好的方法吗?如何以一种好的格式获取SQL?

这似乎是一个很好的解决方案!如果你没有任何资产,简单地在 mysql

恢复

mysql -uUSER -pPASS DATABASE < yourdumpfile.sql
mysql-uUSER-pPASS数据库
您可以使用的有用的rake任务。
再见

这似乎是一个很好的解决方案!如果你没有任何资产,简单地在 mysql

恢复

mysql -uUSER -pPASS DATABASE < yourdumpfile.sql
mysql-uUSER-pPASS数据库
您可以使用的有用的rake任务。
再见

我不能从你的问题判断,但是你的rake任务是否使用了一些rails特定的方法来创建数据?例如,一个像宝石一样的冒牌货?假设你是,我会回答的

如果您正在考虑保存并重新运行faker(或类似的东西)创建的sql,那么我认为这是个坏主意。您说过数据很少更改,所以在这些罕见的情况下,只需使用rails环境即可


但是一旦你有了所需的数据,你就按照@andrea的建议,转储数据并恢复它。

我不能通过你的问题来判断,但是你的rake任务是否使用了一些rails特定的方法来创建数据?例如,一个像宝石一样的冒牌货?假设你是,我会回答的

如果您正在考虑保存并重新运行faker(或类似的东西)创建的sql,那么我认为这是个坏主意。您说过数据很少更改,所以在这些罕见的情况下,只需使用rails环境即可


但是一旦你有了所需的数据,就按照@andrea的建议,转储数据并恢复它。

很高兴知道!我唯一关心的是,这是一个实时生产数据库,其中也包含真实数据。我可以只对数据的一个子集进行转储/恢复吗?(即我的演示环境用户)我最终修改了您共享的rake任务,以编写我感兴趣的特定对象的YAML备份。就像一个符咒,重置现在是10秒而不是>2分钟。谢谢很高兴知道!我唯一关心的是,这是一个实时生产数据库,其中也包含真实数据。我可以只对数据的一个子集进行转储/恢复吗?(即我的演示环境用户)我最终修改了您共享的rake任务,以编写我感兴趣的特定对象的YAML备份。就像一个符咒,重置现在是10秒而不是>2分钟。谢谢