Second time I had this now. Context: www.thebountyrenderer.org is the website of TheBounty; it's a fork of YafaRay, and I am the guy managing the website. The thing is built on Ruby on Rails; custom downloads page (which I need to update for the Wings3D plugin. Soon™). It also has Ahoy, which I intended to use for the website's usage statistics.

Ahoy generates a lot of content, apparently. I don't remember the exact last time when I had exceeded my disk quota on the free (as in price) OpenShift online service, but I don't think it's been four months.

Anyway, the PostgreSQL gear has a quota of 1GB, and I exceeded it. If you know that you have a large table which you can do without, or you know how to delete a bunch of data in the database to restore your quota, this is how you do it. The first problem that arises is, when you login on your Rails/PHP/ whatever application gear, and use psql to access the database, DELETE statements won't work, and neither will TRUNCATE statements. That's because of the journaled nature of PostgreSQL; it creates a new file for each write operation, and that's exactly what you cannot do.

Here's how you actually can do it:

  1. Stop PostgreSQL. Easily done by rhc tidy, as it tries to restart your gear. Stopping will succeed, but starting won't because of your disk quota.
  2. You login on your PostgreSQL gear (not your application gear). You can do that with ssh [user]@[hostname]. Your hostname is in $OPENSHIFT_POSTGRESQL_DB_HOST on your application gear, and your user is the part before your OpenShift domain.
  3. Copy some unneeded data from your PostgreSQL gear somewhere outside OpenShift. Good candidates are in postgresql/versions (just take the whole directory) or the log files, if they are substantial enough.
  4. Remove the files from the gear
  5. Restart PostgreSQL (e.g. rhc tidy again will do that...)
  6. Use psql on your website gear to TRUNCATE a table or DELETE some stuff. In my case, I truncated ahoy_events with CASCADE.
  7. Use VACUUM FULL; in psql so PostgreSQL actually removes the data from its files.
  8. Move the files you copied back it their original place.

Things should be running smooth again. For now, I disabled Ahoy, as I don't really want to buy a larger database just for statistics.