Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to execute a .sql script on heroku?

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?

like image 582
Byron Singh Avatar asked Mar 06 '13 01:03

Byron Singh


People also ask

How add SQL to Heroku?

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.

Can I host SQL on Heroku?

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.

Does Heroku use SQL?

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.


1 Answers

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 
like image 163
catsby Avatar answered Oct 19 '22 17:10

catsby