Removed support for sqlite3 (doesn't make sense to abstract it in with Postgres, and it would only ever be used for testing anyway and we already have a database mock which works for that purpose)
Abstracted it so that the database has both an input and output type which are distinct.
Compiles, though not the tests.
Tests pass, though the database needs to be cleaned out still automatically in between test runs.
Added (uncompiled) support for cleaning out the testing database.
Now uses a testing database for tests, which is automatically cleaned out between test runs.