I have a .sql file with a bunch of insert commands that I want to execute on my postgres database on heroku. But I don't know how to do it:-
If I had access to postgres console I'd type the following:
psql -h localhost -d database -U username -f datafile.sql
but it seems that heroku doesn't support this command. I've tried with
heroku pg:psql
but that doesn't let me input a file.
Are there any other options?
If you want to use MSSQL add-on with an existing app, you can provision it from your app's Resources tab in the Heroku Dashboard, or via the CLI. During provisioning, An Azure MSSQL database is automatically provisioned based on the plan which you choose and MSSQL_TCP_URL , MSSQL_URL config vars are added to your app.
Heroku offers a free plan for hosting PostgreSQL databases. This can be handy if you're getting started with a new project or "just quickly need a hosted database" for experimentation or prototyping. This guide explains how to quickly setup a free PostgreSQL database on Heroku.
Heroku Postgres is a managed SQL database service provided directly by Heroku. You can access a Heroku Postgres database from any language with a PostgreSQL driver, including all languages officially supported by Heroku.
For things like seeding a database, I recommend Richard Brown's answer: you're arguably better off using something like Rails seeds mechanism, or something scripted like a rake task.
That said, being able to pipe sql (raw, or a file) is a useful feature, especially for idempotent things like simple look ups or routine queries. In which case you can execute your local sql with any of the following:
$ cat file.sql | heroku pg:psql --app app_name $ echo "select * from table;" | heroku pg:psql --app app_name $ heroku pg:psql --app app_name < file.sql
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With