在我们支持的其中一个应用中,我们需要为销售人员提供“真实的演示数据”,以便用于演示和销售。
我们目前有一个rake任务,每天重置一次这个演示数据,但它真的非常低效和缓慢(需要大约5到10分钟才能运行)
我肯定有一些方法可以优化生成演示数据的代码(我打算这样做),但我认为可能有更好的方法来完成这个......
我希望做的是获取重置的输出(即获取原始SQL)。我希望我可以做一个计划任务,每天将演示数据直接重置到数据库,而不必加载整个Rails环境并执行一堆ruby方法。
这样我只能在演示数据的性质发生变化时才会运行慢速任务(这是非常罕见的),以便更新我的SQL。
这是最好的方法吗?我怎样才能以漂亮的格式获取SQL?
答案 0 :(得分:1)
这似乎是一个很好的解决方案!如果你没有任何资产,那就简单地做一个转储a.e.在 mysql
mysqldump -uUSER -pPASSWORD [other params] DATABASE > yourdumpfile.sql
并恢复
mysql -uUSER -pPASS DATABASE < yourdumpfile.sql
here您可以使用的有用的佣金任务。 再见
答案 1 :(得分:0)
我无法通过您的问题判断,但是您的rake任务是使用某些特定于rails的创建数据的方法吗?例如,像faker这样的宝石?假设你是,我会回答。
如果您正在考虑保存并重新运行faker(或类似的东西)创建的sql,那么我会说这是一个坏主意。你说数据很少改变,所以在极少数情况下只使用你的rails环境。
但是一旦掌握了数据,就需要使用@andrea建议的内容并转储数据并将其恢复。