Postgres Database private url, is it faster and how to use it?
I have a Django rest framework setup with postgress db and it seems the connection is slow.
I noticed there is a database private url and i wonder if this is a faster connection. If it is how can I configure it in my project?
I read the doc article about private networking but I am new here and couldnt really understand how to do it.
Any help is greatly appreciated.
Thanks.
27 Replies
Project ID:
643c9962-5fa0-449c-82e0-67b30f66c552
643c9962-5fa0-449c-82e0-67b30f66c552
what environment variables do you currently use in your database configuration in the settings.py file?
I previously used to parse the DATABASE URL thats in my env variables. But I tried today to specify the fields such as PG_HOST, user, password, etc.. but I received the same results.
DATABASES = {
"default": {
"ENGINE": "django.db.backends.postgresql",
"NAME": os.environ["PGDATABASE"],
"USER": os.environ["PGUSER"],
"HOST": os.environ["PGHOST"],
"PASSWORD": os.environ["PGPASSWORD"],
"PORT": os.environ["PGPORT"],
}
}
can you show me the code you used to parse those options from the url environment variable, if we can get that method working I think it would be the easiest
Sure
why not just
Right, no idea why I did it they way I did
and what is the
DATABASE_URL
set to?The postgres DATABASE_URL variable from postgres
it should be set to
${{Postgres.DATABASE_PRIVATE_URL}}
i tried that but it caused connection issues
django.db.utils.OperationalError: could not translate host name "postgres-9l4v.railway.internal" to address: Name or service not known
okay is this a nixpacks or a dockerfile deployment
nixpacks
Solution
can you add a 3 second sleep to your start command
how can i do that?
what's your current start command and where is it defined?
railway.json at home dir
change to
ok ill test that
thanks for helping so far..
ok this error is weird
django.core.exceptions.ImproperlyConfigured: The database name 'railwaypostgresql://postgres:[email protected]:5432/railway' (105 characters) is longer than PostgreSQL's limit of 63 characters. Supply a shorter NAME in settings.DATABASES.
I think the env var arent correct
ill fix that
ok it seems to be working well
awesome
why is that, may you explain?
why the 3 second sleep is needed?
yes, and why is it not needed in the normal db url
the private network's dns resolver is not available for the first 3 or so seconds
Oh
would have never figured that on my own
thank you! i really appreciate your help
happy to help!