如何使用 sql 文件填充 heroku postgresql 数据库

Ste*_*oth 4 database postgresql heroku heroku-postgres heroku-cli

首先,我想说,我不是数据库专家,也没有使用 heroku 服务的经验。

我想将播放框架应用程序部署到 heroku 服务。我需要一个数据库来这样做。所以我用这个命令创建了一个 postgresql 数据库,因为它受 heroku 支持:

Users-MacBook-Air:~ user$ heroku addons:create heroku-postgresql -a name_of_app
Run Code Online (Sandbox Code Playgroud)

我得到了这个作为回应

Creating heroku-postgresql on ? benchmarkingsoccerclubs... free
Database has been created and is available
! This database is empty. If upgrading, you can transfer
! data from another database with pg:copy
Run Code Online (Sandbox Code Playgroud)

所以数据库现在已经存在,但当然是空的。对于开发,我使用了本地 H2 数据库。

现在我想使用 sql 文件在 heroku 上填充数据库,因为它有很多数据。但我找不到如何做到这一点。是否有适用于 heroku CLI 的命令,我可以在其中将 sql 文件作为参数移交并填充数据库?文件基本上由几个创建的表和大约 10000 个插入命令组成。

编辑:我也有来自所有表的 CSV 文件。因此,如果有一种方法可以让我用这些填充 Postgres 数据库也很棒

Yon*_*tch 5

首先,运行以下命令以获取您的数据库名称

heroku pg:info --app <name_of_app>
Run Code Online (Sandbox Code Playgroud)

在输出中,注意“Add-on”的值,它应该是这样的:

Add-on:                postgresql-angular-12345
Run Code Online (Sandbox Code Playgroud)

然后,发出以下命令:

heroku pg:psql <Add-on> --app <name_of_app> < my_sql_file.sql
Run Code Online (Sandbox Code Playgroud)

例如(假设您的 sql 命令在文件 test.sql 中):

heroku pg:psql postgresql-angular-12345 --app my_cool_app < test.sql
Run Code Online (Sandbox Code Playgroud)