Connecting to a Heroku PostgreSQL database - postgresql

Hi i'm totally new to Rails and Postgres + Heroku. I've developed a web and just like PHP you can see what are the records user has entered and key in with phpMyAdmin however what about Rails? How can I see the records?
I've uploaded the app to Heroku so now I wanna see my Production's data. What is more is that my test and development data can't be seen in PGAdmin as well.

You can connect to Heroku Postgres just as you can a local database.
Go to https://postgres.heroku.com/databases, select the database, and it will display the connection settings. On the far right of the page there is an icon with two arrows on it, and selecting it will give you the connection string for various technologies, including a psql command line you can just copy and paste to a terminal.
It will look something like:
psql "dbname=ddgadagin host=ec2-107-12-168-211.compute-1.amazonaws.com user=dgddgargarg password=huu55ihfwqreergr port=5432 sslmode=require"

Related

pgadmin db restriction server property not working

I have a heroku postgres database. On pgadmin i can see over 1,700 databases since they are all on the same host. I have set the server connection settings as provided by heroku and i can see my database highlighted in yellow and can access it normally.
I tried disconnecting from the server than edit the db restriction property in the advanced tab and put in my database name(same one as the maintenance db, and without ''). I press save, i reconnect to the server but i can still see all the databases of the server and all the live data of the entire server. Am i missing something?
Don´t download the latest version of pgadmin 4(v.6.10), instead download the v.6.9
link:
https://www.postgresql.org/ftp/pgadmin/pgadmin4/v6.9/windows/
I believe that latest version is buged when we try to especify a dbname for restriction
uninstall 4(v.6.10) and replace (v.6.9)
i faced the same problem here, but installed (v.6.9) and worked great, and brings me only my database
for pgadmin4 you dont need single quotes ... just write the dbname and then tab
How to hide databases that I am not allowed to access
result-image

How to see what is in your Heroku-Postgress DB

I recently uploaded a WebApplication to Heroku. I developed it using sqlite; however, I then changed it to Heroku-Postgres.
Nonetheless, I am not able to view in any way the data that is in my database.
There are no problems with the code and the WebApplication works perfectly however it would be very useful to be able to tap into the data.
Download the Heroku CLI and get access to the postgres admin console.
heroku pg:psql -a appName
Use this command in terminal, This will connect you to pgadmin console.
You can use dbeaver database client, but it is very slow because it is free db from heroku.
https://dbeaver.io/download/
Or you can use heroku CLI, psql

Database transfer from Heroku to Digital Ocean

I'm currently in the process of switching my cloud server from Heroku to Digital Ocean. However is there a way to migrate the database from the heroku server to the digital ocean one? I use postgresql for my database
I hope you already got a solution, but in case you didn’t, I’ll provide a simple guide on how I did it. I am going to assume that you have already created a postgres database on digitalocean. Also you need navigate to your project directory and log in to heroku using the heroku cli. And, you need to have postgresql installed or a psql client. Installing postgresql would do it as it comes with psql.
Step 1: Create a backup and download the backup from heroku postgres
heroku pg:backups:capture --app <app_name>
heroku pg:backups:download --app <app_name>
The first command will create a backup of your database and the second command will download it to your current directory, its a .dump file. If you would like to read more, here is an article.
Step 2: Connect to your remote (digital ocean’s) database using psql
Before you can do this, you need to go and add your machine you are connecting from to the list of database’s list of trusted sources, If you don’t, you’ll get a Connection Timed Out error. That’s because the database’s firewall doesn’t allow you to connect to the database from your local machine or resource (for security reasons).
Step 3: Import the Database
pg_restore -d "postgresql://<database_username>:<database_password>#<host>:<port>/<database>?sslmode=require" --jobs 4 -c "/path/to/dump_file.dump"
This will import your database from your dump file. Just substitute the variables will your connection parameters that you get from your dashboard. If you would like to read more, here is another article for this step.
Another thing to make clear is, sometimes, you will see some harmless error messages when running this command, but it will push through anyway. To learn more about pg_restore read this article.
And that’s it, your database has been migrated. Now, can you confirm it worked?, well, as for me, I used pgAdmin to connect to the remote database and I saw the tables and data as expected.
Hope this helps anyone with the same problem :)

How do I view a PostgreSQL database on heroku with a GUI?

I have a rails app on heroku that is using a Postgre database. My database has > 40 tables and > 10,000 rows. I would like to delete a lot of data, but it would be much easier if I was able to view and interact with it in a GUI table. I can access my data in rails console, but it's taking too long.
pgweb is a great cross-platform GUI, and it's easy to connect to your Heroku Postgres when launching from the command line.
I installed via Homebrew on a Mac (brew install pgweb), but instructions for other platforms are listed on the site. Here's how I launch pgweb connected to a Heroku Postgres DB:
heroku config:get DATABASE_URL | xargs pgweb --url
And if you want to connect to your localhost:
pgweb --host localhost
I'm a little late here, but this may help someone else who stumbles across this thread...
If you go to your Heroku app's dashboard (through the website) > settings > "Reveal Config Vars" > DATABASE_URL, and paste that URL into the browser.
I use TablePlus for database management, when I paste the link into the browser it asks if it can open TablePlus and then I can edit my production database in real time just like I would in development.
I'm not sure what pasting the URL into the browser will do if you don't have TablePlus. I assume it will request to open any other SQL management app you might have.
As slumdog wrote in the comment to your question, you can use pgAdmin, which comes with your local Postgres installation.
This article explains how to connect your remote heroku db with pgAdmin, using heroku credentials: https://medium.com/#vapurrmaid/getting-started-with-heroku-postgres-and-pgadmin-run-on-part-2-90d9499ed8fb
From the article:
"pgAdmin is a GUI for postgresql databases that can be used to access and modify databases that not only exist locally, but also remotely. For a fresh install of pgAdmin, the dashboard likely contains only one server. This is your local server...
We have to configure a new remote server with its credentials.
right click server(s) > create > server …
Fill out the following:
Name: This is solely for you. Name it whatever you want, I chose ‘Heroku-Run — On’
Under the connection tab: hostname/address. If you go back to your datastores ‘reveal credentials’, this is the host credential. It should look like --**...amazonaws.com
Keep the port at 5432, unless your credentials list otherwise
Maintenance database — this is the database field in the credentials
Username — this is the user field in the credentials
Password — the password field in the credentials. I highly advise checking save password so that you don’t have to copypasta this every time you want to connect.
In the SSL tab, mark SSL mode as require
At this point, if we were to hit ‘save’ (please don’t), something very strange would happen. You’d see hundreds if not thousands of databases appear in pgAdmin. This has to do with how Heroku configures their servers. You’ll still only have access to your specific database, not those of others. In order to avoid parsing so many databases, we have to white list only those databases we care about.
go to the Advanced tab and under db restriction copy the database name (it’s the same value as the Maintenance database field filled earlier)."
Article contains other usefull guidelines and screenshots.
Try GUI of DBWeaver.
https://dbeaver.io/
Download it, after that you can connect your heroku postgres using Database Credentials data.
You can use Heroku's hosted DB viewer on the Overview pane of your dashboard:
Create and click the Dataclip:
Dataclip GUI is fairly easy to use, we can type and customize SQL queries at the top etc.

Cant initialize database on google cloud platform

Here is the database I am trying to install (comes with 4 short instructions very easy to follow): https://github.com/toddwschneider/nyc-taxi-data
I used git clone to bring the repository down to my vm. And next I cd into it and run initialize_database.sh. Here is what happens:
pic of terminal
the password I am trying to use is the one provided by my Bitnami Launchpad, which says the admin user is postgres, but when I work on it it says kzherbert, my google account. I have tried su postgres but its not a user on the server so it doesnt work like that. I can use postgres password for psql -U postgres, which will take me to the psql terminal. Also, I have tried using my google account password as well and it does not work. What really interests me about the picture is where the shapefile is relevant and why it repeats and doesnt allow me to exit
Any and all help is greatly appreciated.
The problem is that the database you are trying to install (Unified New York City Taxi and Uber data) assumes you're installing PostreSQl from scratch instead of using the one included in the Bitnami Image.
The script you're using assumes that the user to connect the database is the same that the System User you're using to connect to your server via SSH (kzherbert in your case). However, the password you're trying to use is the one for the user postgres.
You need to connect to PG using the password Google provided you and the user postgres and the create an user kzherbert with the password you desire.