Share a heroku basic postgres DB between 2 heroku apps - postgresql

Having googled it (and looked on the heroku site) - i just can't find a set for instructions for setting a new rails app's database connection to be to a basic db created for a different (earlier) app. I know there's something to do with swapping the "color" of the databases available - but i have no idea how... and links or any simple instructions massively appreciated.
ps - i gave seen this question, but it is a couple of years old, and it seems things have moved on at heroku since then.

Go into the directory you are pushing to Heroku and type the following:
heroku config:set DATABASE_URL=`heroku config:get DATABASE_URL -a other-app`
Where "other-app" is the database from the app you created earlier. For example:
heroku config:set DATABASE_URL=`heroku config:get DATABASE_URL -a running-tree-4822`
More detailed instructions are on Heroku's web site:
https://devcenter.heroku.com/articles/heroku-postgresql#sharing-heroku-postgres-between-applications

I think the answer to the question you reference is still relevant. There's also a blog post with more details here.

Related

What is the command to upgrade Heroku Postgresql to a Basic plan

I need to upgrade my Heroku Postgresql database to the Basic plan. I've found the command in Heroku's docs, but I'm not sure if I need to change it to affect my account. My app's name on Heroku is tranquil-mountain-51138
heroku addons:upgrade HEROKU_POSTGRESQL_LAVENDER_URL heroku-postgresql:premium-0 -a sushi
Do I need to change this terminal command to include my app's name and the Basic db plan? If so, could you give me the edited version. My guess would be that I change premium-0 to basic. I've no idea what the rest of the command refers to: HEROKU_POSTGRESQL_LAVENDER_URL and sushi
It is a very small personal app. I'm the only one using it, so I've no worries about down time when the maintenance starts.
Thanks for any help.
Finally received a response from Herouku HelpDesk that explains the parts of their example command for upgrading a db.
Their example: heroku addons:upgrade HEROKU_POSTGRESQL_LAVENDER_URL heroku-postgresql:premium-0 -a sushi
$heroku addons:upgrade DATABASE_URL <database-type> -a <app-name>
For my app, upgrading to their Basic plan, the command is:
$heroku addons:upgrade DATABASE_URL heroku-postgresql:basic -a tranquil-mountain-51138
Hope this helps others.

How to deploy a FastAPI app using PostgreSQL as a database on Heroku

I developed a FastAPI app in a Virtual Environment using an SQLite database but deployed it on Heroku with a PostgresSQL database on Heroku as suggested in the tutorial. Although it worked on my PC, adding PostegresSQL as an addon & replacing the value of SQLALCHEMY_DATABASE_URL in the database.py broke everything. Note that I've properly frozen the dependencies on the requirements.txt file. Yet I can't figure out what went wrong.
For further clarification, I've pushed my code to GitHub & it can be accessed at this repository - Self_calculation.
If you are using Postgres Addon on Heroku, probably your solution is simple.
Use os.environ to get the connection parameters , don't try to connect directly, it's Heroku's recommended solution from Heroku Postgres
import os
DATABASE_URL = os.environ.get('DATABASE_URL')
I just need to run this:
1)heroku git:remote -a my_heroku_app_name
2)heroku logs --tail
after that I could see my problem.
In my case I forgot to change postgres url in alembic.ini file

Is there a way to copy a postgres db to heroku?

I have a django project that I was initially running on pythonanywhere using a postgres database. However, pythonanywhere doesn't support ASGI, so I am migrating the project over to heroku. Since heroku either much prefers or mandates use of its own postgres functionality, I need to migrate the data from elephantsql. However, I'm really coming up short on how... I tried running pg_dumpall but it didn't seem to want to work and/or the file disappeared into the ether. I'm at a loss for how to make this migration... If anyone could help, I'd appreciate it so much. T-T
After hours of searching and doing what I can to scour heroku's listed info, I found it by running heroku pg:push --help.
For a locally running server, run
heroku pg:push '<db_name>' <heroku_db_name> --app <app_name>
For a hosted one, run
heroku pg:push <postgres_link> <heroku_db_name> --app <app_name>

pgbackups on Heroku not found

I have been using pgbackups to capture databases and load them locally but since yesterday, I am getting this message when provisioning the add on for new apps.
! Add-on plan not found.
Has pgbackups been disabled for new instances? It still works on apps it was previously integrated with. If it has been deprecated, what is the recommended replacement?
Heroku have recently made changes. "PG Backups as an add-on has been deprecated." For new commands, see here:
https://devcenter.heroku.com/articles/mapping-pgbackups-commands
Old command:
heroku pgbackups:capture --app sushi
New Command
heroku pg:backups capture --app sushi
So I missed this little disclaimer here: https://devcenter.heroku.com/articles/pgbackups
PG Backups as an add-on has been deprecated. The commands exist as part of the Heroku Postgres namespace in the CLI. The new functionality is live and available for use. We also have a mapping guide to show you how the old commands transfer to the new ones.
To add to response from jcuenod above the same would apply for heroku pg:backups:restore. The new command will be heroku pg:backups restore. Heroku documentation is inconsistent and should be updated.

Destroying a Postgres DB on Heroku

I want to destroy the database but I'm not sure what the command would be. Does anyone know how to do this?
You shouldn't use a postgres command to fully delete your database, as you will not have permissions to create a new one. Instead you should use the heroku command to clear out your database:
heroku pg:reset DATABASE_URL
None of the answers above actually describe how to destroy a Heroku database, which was the original question (and what led me here seeking an answer).
From their docs, either of these will work:
heroku addons:destroy heroku-postgresql:tier (where tier is the database tier, like hobby-dev)
heroku addons:destroy HEROKU_POSTGRESQL_<COLOR> (if you have more than one database of that tier)
Note that because this is a destructive action it will prompt you to confirm the action. If you want to use this in a script you can skip the prompt with something like this:
heroku addons:destroy HEROKU_POSTGRESQL_<COLOR> --confirm <appname>
Hope that's helpful!
To answer Siamii's question above: DATABASE in heroku pg:reset DATABASE is by default postgres
Simply follow the steps below. Run
heroku pg:reset DATABASE
to recreate the database with nothing in it, then run
heroku run rake db:migrate
to initialize the database with the correct schema & data.
Look at the new heroku documentation it helps ;)