Failed to seed database in NextJS dashboard app tutorial (chapter 6)
Answered
Yenney posted this in #help-forum
YenneyOP
Hello, I would like some help please. I am following Next tutorial for the Dashboard app. I am up to chapter 6 and got stuck with seeding the database. I have followed step by step from the tutorial but I get timeout error when calling the seed API
Answered by Yenney
I have figured it out myself and I would like to share it in here in case someone is facing the same issue.
The sql variable in /seed API needs to use the DATABASE_URL env var as it is a non-pool/direct connection (it will support long transactions like seeding) while the POSTGRES_URL is for the pooling connection (which only supports short-term connection for querying). As a result, if you call from your localhost for seeding, you will need a direct connection. It also explains that if you call with the deployed app from Vercel, the seeding API works as it doesn't require long transaction/connection since you connected the database to them from the tutorial
The sql variable in /seed API needs to use the DATABASE_URL env var as it is a non-pool/direct connection (it will support long transactions like seeding) while the POSTGRES_URL is for the pooling connection (which only supports short-term connection for querying). As a result, if you call from your localhost for seeding, you will need a direct connection. It also explains that if you call with the deployed app from Vercel, the seeding API works as it doesn't require long transaction/connection since you connected the database to them from the tutorial
3 Replies
YenneyOP
I have tried to used the API from the deployed app, it was able to seed and query the database. But how come from the localhost I can only query but not being able to seed it
Thanks in advance if anyone can help me out
YenneyOP
I have figured it out myself and I would like to share it in here in case someone is facing the same issue.
The sql variable in /seed API needs to use the DATABASE_URL env var as it is a non-pool/direct connection (it will support long transactions like seeding) while the POSTGRES_URL is for the pooling connection (which only supports short-term connection for querying). As a result, if you call from your localhost for seeding, you will need a direct connection. It also explains that if you call with the deployed app from Vercel, the seeding API works as it doesn't require long transaction/connection since you connected the database to them from the tutorial
The sql variable in /seed API needs to use the DATABASE_URL env var as it is a non-pool/direct connection (it will support long transactions like seeding) while the POSTGRES_URL is for the pooling connection (which only supports short-term connection for querying). As a result, if you call from your localhost for seeding, you will need a direct connection. It also explains that if you call with the deployed app from Vercel, the seeding API works as it doesn't require long transaction/connection since you connected the database to them from the tutorial
Answer