Powered by Neon
Introduction
Laravel Serverless Postgres provides a fully managed, autoscaling Postgres database for your application. Serverless Postgres database clusters autoscale their compute resources and storage to automatically accommodate demand from your application. Laravel Serverless Postgres supports a wide range of PostgreSQL extensions, including pgvector for AI and vector similarity search capabilities. To learn more about using pgvector for storing and searching vector embeddings, see Neon’s pgvector documentation.
Creating Serverless Postgres databases
To create and attach a Serverless Postgres database to an environment:- Navigate to your environment’s infrastructure canvas dashboard
- Click “Add database”
- Select an existing database cluster or create a new one:
- To create a new cluster: Select the “Laravel Serverless Postgres” type at the Postgres version you want, then configure:
- Cluster name: A unique name for your database cluster
- Region: Must match your compute cluster’s region
- Configuration: Choose a preset, or customize the compute unit range the cluster autoscales between, when it scales to zero, and how many days of point-in-time recovery backups to retain
- To create a new cluster: Select the “Laravel Serverless Postgres” type at the Postgres version you want, then configure:
- Select an existing database within the cluster or create a new one:
- Database name: The name of the database within the cluster
You can also create Serverless Postgres databases from your organization’s Resources page, but they will need to be attached to an environment separately.

Database clusters vs. databases
When creating a new database cluster, you will be asked to provide the desired name of the cluster and the desired name of the initial “database” that will be created within the cluster. Each database cluster may contain up to 500 databases. In web development, these databases are sometimes referred to as “schemas”. If your application requires more than 500 databases, you should create an additional database cluster and distribute your databases across clusters. Environments attach to a database, not to a cluster. When attaching, you first choose the database cluster and then select the database within it that you want to make available through theDB_DATABASE environment variable.
Editing and resizing database clusters
To edit your database clusters and adjust their compute / storage settings, navigate to Organization > Resources > Databases and click the … icon for the database cluster you would like to edit or resize. Then, click Edit settings. Changing the compute unit range restarts your cluster’s compute and briefly drops existing connections. Autoscaling within the configured range does not restart the compute.Monitoring database cluster metrics
To view metrics such as CPU, write throughput, and storage for database clusters, navigate to Organization > Resources > Databases, click the database cluster card, and click Metrics.Deleting database clusters
To delete a database cluster, navigate to Organization > Resources > Databases and click the … icon for the database cluster you would like to delete. Then, click Delete and confirm your action.Compute units
When creating a Laravel Serverless Postgres database cluster, you may configure the range of “compute units” your cluster should scale between based on demand. Compute units correspond to the following vCPU / RAM configurations:Connection pooler
Laravel Serverless Postgres offers connection pooling via pgbouncer, enabling up to 10,000 concurrent connections to your cluster. To connect to the pgbouncer endpoint of your database cluster, append-pooler to the first segment of the cluster’s host name. For example, if your database cluster’s host name is ep-frosty-shadow-a57j6ubb.us-east-2.pg.laravel.cloud, the corresponding pgbouncer endpoint is ep-frosty-shadow-a57j6ubb-pooler.us-east-2.pg.laravel.cloud.
Then, add the new host name as the DB_HOST environment variable in your environment’s General Settings:
Scale-to-Zero
Laravel Serverless Postgres database clusters may be configured to automatically scale to zero after not receiving any incoming queries for a given number of seconds. When a Serverless Postgres cluster is sleeping, you will not be billed for its compute resources. If the cluster receives an incoming query while it is sleeping, it will automatically wake up within a few hundred milliseconds.
Autoscaling compute
Serverless compute can autoscale up and down based on your database cluster’s utilization. Set a minimum and maximum range and only pay for the compute resources you actually need.
Connecting to database clusters
From your application
When a database is attached to an environment, Laravel Cloud automatically injects database connection environment variables, includingDB_HOST, DB_USERNAME, DB_PASSWORD, and DB_DATABASE. You may view these variables in your environment’s General Settings.
From your local machine
To connect to your database from your local machine using a database management client like TablePlus, navigate to your organization’s Resources page, then to your desired database cluster, and finally click the … icon next to an available database. Then, click View credentials.
Postgres SSL connections
Neon, which powers Laravel Serverless Postgres, uses the public ISRG Root X1 certificate issued by Let’s Encrypt. Due to this, you can create an SSL Connection with your Postgres cluster by using the appropriate CA certificate for your operating system. If you are using macOS, this certificate should already be located within your/etc/ssl/cert.pem path.
Troubleshooting
Common error messages
Too many connections error
Connection timeout error
- If this message appears constantly, confirm you have plenty of disk space and allow 15 minutes for the database to restart after changing disk space limits
- Check notifications to be alerted before reaching these limits
- If this message appears occasionally, you may need to increase your database RAM as the database likely hit an out-of-memory error and restarted during a query or connection burst
- Contact support if issues persist
Performance monitoring
Monitor your database performance through the metrics dashboard available in your database cluster settings. Watch for:- High CPU usage: May indicate inefficient queries or insufficient compute resources.
- High memory usage: Could lead to connection issues or query failures.
- Low disk space: Can cause database failures and connection timeouts.
Enable notifications in your organization settings to receive alerts before reaching resource limits.

