From PostgreSQL wiki
What's the difference between the PostgreSQL packages provided by Debian/Ubuntu and by the PGDG apt repository?
Pretty little, actually. The PGDG packages are built from the same source as the Debian packages (Ubuntu is using the same source for the PostgreSQL server packages as well). We try to follow Debian unstable's versions as close as possible, i.e. the packages available here are the same, just rebuilt with a ".pgdg" appended to the version number. We are also using the same postgresql-common infrastructure packages.
Should I use Debian/Ubuntu's packages, or the PGDG packages?
Debian and Ubuntu only ship one PostgreSQL server version per release. For example, there is only PostgreSQL 8.4 in Debian Squeeze/6.0. If that is the version you want, use it. There is no real difference. If you want a different PostgreSQL server version, use the PGDG packages.
Same goes for extension module packages, except that we are updating to new upstream versions earlier (following Debian unstable), while Debian/Ubuntu will only accept patches for critical problems in a released distribution.
What about Debian backports?
[Debian backports] provide newer package versions for released distributions, similar to what the PGDG apt repository does. The scope of the backports archive is strictly limited to testing -> stable, and stable -> oldstable backports, though. The PGDG apt repository provides a broader range of available packages, and Debian version/PostgreSQL version combinations than what would be possible to provide on backports.
Similar to the previous FAQ question, if the package you want is available on backports, there is nothing wrong with using it.
Are these packages ready for production?
As said above, these packages are identical to what Debian/Ubuntu are releasing. So yes, these packages are recommended for production use.
pgapt.debian.net was the old location of this repository, and it is still kept in sync for its current users. Please update your sources.list to point to apt.postgresql.org. We will shut down pgapt.debian.net at the end of January 2013.
How do I dist-upgrade?
Just update your sources.list entries, and use your favorite package tool.
When compiling packages for several distributions, we append different suffixes to the package version numbers to make sure, upgrades work. Debian Squeeze packages have ".pgdg60+1" appended, Wheezy packages ".pgdg70+1" and so on; likewise ".pgdg12.4+1" for Ubuntu Precise. (Sid packages have ".pgdg+1", which sorts after all the others in Debian's version number scheme.) This makes sure packages from the old distribution you used will be properly replaced by packages from the new distribution when you do a dist-upgrade.
Where is the "stable" distribution?
We prefer to only use codenames (squeeze, precise, ...) for distribution names. We run a different repository from Debian, so we would never be able to update the stable/oldstable/testing symlinks at the very same time when a new Debian release comes out, and there would be a time window where users would be seeing an inconsistencies. (Also, it is usually better to use codenames in sources.list even for Debian distributions, because then the user decides when it is time for upgrade.)
I want libpq5 for version X, but there is only version Y in the repository
libpq5 is compatible with older versions, so there is usually little reason to use a specific version. (psql requires at least the version corresponding to its own version, most other software does not really care.) For that reason, we ship the libpq5 package built from the latest stable PostgreSQL server version in the main archive component.
If you really want to use a different version, the packages are available in separate archive components named after the PostgreSQL major version. Append that version after "main" in your sources.list. For example, if you wanted 9.0's libpq5 on Debian Squeeze, use this:
deb http://apt.postgresql.org/pub/repos/apt/ squeeze-pgdg main 9.0
Note that the other libpq5 package will still be visible in the "main" component, so you will need to configure pinning or set that package on hold to prevent apt from trying to upgrade to the newer version.