Schema version check
====================

The database initialization code checks the schema version number and
complains if it doesn't match what's expected.  We do not yet support
automatic schema updates.

    >>> import os
    >>> from tempfile import mkstemp
    >>> fd, filename = mkstemp()
    >>> os.close(fd)
    >>> uri = 'sqlite:///' + filename

    >>> from botlib import database
    >>> db = database.Database(uri)
    >>> version = db.get_version(database.SCHEMA_KEY)
    >>> version.version
    4

By hacking the version number, we can trigger the expected exception when we
open another database instance.

    >>> version.version = 5
    >>> db.store.commit()
    >>> db_2 = database.Database(uri)
    Traceback (most recent call last):
    ...
    Corruption: Unexpected schema version: 5


Clean up
--------

    >>> os.remove(filename)
