Migrating production infrastructure? Get up to ₹10,000 in migration credits. Apply now
voroaDocs
Voroa Postgres

Managed database storage limits

Every managed Voroa database has a storage limit. See how much you are using, raise the limit when you need more, and restore writes if it goes read-only.

Every managed database on Voroa has a storage limit. Every plan includes storage in its monthly price — the Free type and each paid Postgres type each come with an amount included, shown on the plan when you pick it, and you pay nothing extra for it. If you need more than your plan includes, you can add extra storage per GB on top. The limit covers everything the database keeps on disk: your tables and rows, indexes, and its own internal files.

Your limit is the included amount plus any extra you have added. A plan that includes 5 GB, with 10 GB of extra storage added, gives the database 15 GB, and only the 10 GB is charged per GB.

You can add extra storage later, at any time. Open the database, go to the Settings tab and select Change plan or add storage; the same route works whether the database is on the Free type or already on a paid one. Extra storage is bought in steps of 1 GB or any multiple of 5 GB.

Storage only goes up. Once a database has a limit you cannot reduce it, because the disk underneath cannot be made smaller without putting your data at risk. Moving to a plan that includes less does not take space away from a database you already have — you keep the limit you have, and the price is what changes.

Storage is per database. Each database has its own limit, and one database filling up does not affect another.

See how much you are using

Open the database from your dashboard and go to the Settings tab. The Storage section shows how much of your limit is in use, as a percentage and as an amount, along with your total capacity.

Usage is measured periodically rather than instantly, so the figure can be a few minutes behind what you have just written. On a database that was created moments ago, usage may not have been measured yet — the page says so rather than showing a misleading zero.

What happens as storage fills up

Nearly full. Once usage passes 80% of the limit, the Storage section shows a warning. This is the point to act: the database is still fully writable, so you can delete data you no longer need, or move to a larger size.

At 95%. Writes stop before the disk is completely full: once usage passes about 95% of the limit, a Postgres database is placed in read-only mode and the database page shows a read-only notice. So a page telling you that you are at 96% of your limit and a database that has stopped accepting writes are the same situation, not a contradiction. Read-only is a deliberate stop rather than a failure: it protects the data you already have instead of letting the database run out of room mid-write.

Key Value instances are not placed in read-only mode. They are bounded by the memory of their size, and what happens when they are full is your choice — keep everything and refuse new writes, or drop the oldest keys to make room, once that choice is available on your instance. If it is not yet, the instance page will tell you rather than leave you looking for it. See how to add a managed Redis or Postgres for how to set it.

What read-only means for your app

In read-only mode:

  • Reads keep working. Queries that only read data return results as normal, so parts of your app that just display data keep working.
  • Writes are rejected. Inserts, updates, and deletes fail, and your app sees an error from the database. Depending on how your code handles it, this may surface as a failed request or a visible error to your users.
  • Your data is intact. Nothing is deleted and nothing is lost. The database is paused for writes, not damaged.

Your service itself keeps running — only writes to this database are affected.

Restore writes

Writes are restored once the database is back below that threshold. The check runs periodically, so it can take a few minutes for the change to take effect after you act. You do not need to restart anything.

Raise the limit. This is the direct way out of read-only mode: buy more storage. Open the database, go to the Settings tab, and select Change plan or add storage under Size. That opens the plan screen, where you choose the instance type and the amount of storage you want. The same route works whether the database is on the Free type or already on a paid one – if it is not on a paid plan yet, you are taken through checkout. The read-only notice on the Storage section links to plans as well.

The new capacity applies within a few minutes of any payment going through.

Reduce what you store. Once writes are available again, keeping usage down is the way to stay out of read-only mode. What usually helps:

  • Delete rows and tables you no longer need, and reclaim the space afterwards.
  • Drop indexes that are not used.
  • Move large files — images, uploads, documents — out of the database and store them in object storage, keeping only a reference in the database.
  • Trim tables that grow without bound, such as logs, events, and audit trails, by deleting rows older than the window you actually query.

Plan ahead

  • Check the Storage section from time to time, especially after a change that writes a lot of data.
  • Give yourself headroom. Sizing so that you sit near the limit leaves no room for a spike.
  • Keep bulk data out of the database where you can. Object storage is a better home for large files than a database row.

Next steps

Last updated November 11, 2026