Try having the database connect while it's starting up. Check out this blog [http://www.darkoperator.com/installing-metasploit-in-ubunt/] post about setting up Metasploit on Ubuntu but it should be very similar to Arch in a lot of ways. In particular put the following in your home directory under ~/.msf4/database.yml:
production: adapter: postgresql database: msf username: msf password: host: 127.0.0.1 port: 5432 pool: 75 timeout: 5
Obviously changing the password, database, and username to fit what you setup is. This should make it so the database is loaded when msfconsole starts.
This should make sure the right functions are called to get the caching and everything to work.