在Rails应用程序中将开发种子数据加载到Postgres的最佳方法

时间:2018-12-21 16:37:49

标签: ruby-on-rails bash shell docker devops

我正在尝试改善我的一个项目中的Docker入门经验,我正在使用pv来指示将数据加载到Postgres的进度,它可以正常工作,而且非常不错。问题在于,一旦加载了数据,就需要建立索引,这需要时间。在此期间,进度条处于100%,似乎什么也没有发生。我想以某种方式对其进行动画处理以表明正在发生某些事情。

这是我要做什么的一个粗略例子:

让我喜欢的是如何在管道中执行此操作?我想我可以创建一个脚本并通过它进行管道传输,使用pv并以某种方式检测文件IO何时完成,然后将输出切换到100%后的动画。

这是当前命令:

pv tmp/latest.sql | psql -q -h db -U $POSTGRES_USER $POSTGRES_DB > /dev/null

我计划尽快将其移动到入口点脚本中,因此不要过于依赖它作为“一个班轮”。无论如何,我想我只想问问所有超级聪明的人,看看会发生什么。

哦,这是它的项目:https://github.com/heycarsten/lcbo-api

谢谢大家的帮助!

更新

我没有设置某些“花哨的”进度指示器,请尝试将重点放在这上面。我的目标是将数据从S3(或任何地方)上的转储中获取到dev数据库中。并且为了将体验清楚地传达给开发人员,在该项目的情况下,这将是很多人第一次学习编程。

因为过去我总是这样做:启动应用程序,创建模式,加载数据,并不意味着它是唯一的选择,我知道这一点,并且我绝对愿意其他选择。

如果您认为我是无知的,那是对的!我是整个Docker领域的新手,但是到目前为止,我真的很喜欢它。

我的目标是:

  • 种子数据会定期更新
  • 由于项目的性质,有大量的数据,所有这些数据都可用
  • Rails应用程序中还将有一个任务来重新播种数据库

如果有一种纯粹的Docker方式可以做到这一点,我会耳熟能详,但是我不明白数据如何从映像转移到卷中?

0 个答案:

没有答案