如何将初始数据放在db中



我有一个csv文件,大约有30,000行数据。

我需要这些数据在数据库中为我的应用程序。

我不知道应该用什么方法来初始化这个数据。

我正在使用postgresql的docker image .

我的想法是:

  1. .sql文件插入这些数据,并在docker运行时执行。
  2. 只需保留插入了这些数据的docker卷,并在每次运行时挂载它。
  3. 其他方式…?

第一种方法非常通用,因为插入行是一个非常常见的任务,不会中断。但缺点是我需要在每次运行docker时都这样做。

我想第二种方法更快更有效…?但是如果由于某种原因postgres更新了版本或者我决定更改数据库,那么volume可能不兼容。

有什么建议吗?

只需在主机上挂载一个卷,并将数据库放在其中。如果数据库不存在,则由Postgres Image创建。在入口点过程中,您可以检查数据库是否为空,然后加载30000条记录。

你说这可能不是最好的解决方案,原因如下:

  1. Volume可能不兼容postgres更新。但这不会发生,因为postgres更新将有一个非常小的机会需要重建数据库。
  2. 您决定更改数据库你是什么意思?修改数据库为mongodb还是MySQL?在这种情况下,无论您选择哪种解决方案,您都要进行代码更改。除非你使用ORM (NodeJS: Prisma, TypeORM?),否则可能会使更改最小化。

相关内容

  • 没有找到相关文章

最新更新