Reputation: 59
I am able to successfully deploy my Flask app on Heroku, but I'm not able to connect to my database (Internal Server Error). I noticed that the connection string in the Heroku DATABASE_URL begins with postgres:// instead of the usual postgresql://. I am able to connect to the Heroku database when I run my app locally using the connection string postgresql://[etc.] but not with postgres://[etc.]. Does anyone know how I can fix this? Heroku doesn't allow editing the DATABASE_URL environment variable. I've been pounding my head against the desk for hours and I'm about to give up.
Thank you.
Upvotes: 3
Views: 402
Reputation: 1
replace postgres with postgresql
DATABASE_URL = os.environ['DATABASE_URL']
DATABASE_URL = str(DATABASE_URL).replace("postgres://", "postgresql://", 1)
app.config["SQLALCHEMY_DATABASE_URI"] = DATABASE_URL
Upvotes: 0
Reputation: 46
Do edit your connection string like this in python. I am using slicing. You can use similar approach in other language.
DATABASE_URI = os.environ['DATABASE_URL']
DATABASE_URI= DATABASE_URI[:8]+'ql' + DATABASE_URI[8:]
Essentially what it does is take the first 8 characters, adds 'ql' and then adds the remaining characters and replaces the string.
Upvotes: 1
Reputation: 23
Try to recreate new environment variable with the same ids but with postgresql://
suffixe ?
Upvotes: 1