I don't know how I broke metasploit, but I did. It reported an incorrect password for the msf3 postgres user. Here's how I fixed it after some digging.
su - postgres psql postgres=# alter user msf3 with encrypted password 'mypasswordhere'; postgres=# \q vim /opt/metasploit/apps/pro/ui/config/database.yml
Replace database password with whatever password you just set and enjoy msfconsole and related tools again.