# Functions
ApplyMigrations runs all the `migrations` on the sqlite3 database which is stored at the `databasePath`; since migrations are tied to tables, it's also requested that the `tableName` is provided.
Check performs a check whether the file at path `atPath` is already an initialised database.
Init initialises a local disk sqlite3 database for storage of incoming data.
InitTable creates 2 tables, one named `tableName` and the other named `tableName`_migrations using the provided `connection`; this way of doing things distributes the migrations so that each table is independently migratable and hence independently removable.
IsMigrationAppliedAndValid performs a check on whether the provided migration already exists in the database.
NewConnection creates a new database connection to the sqlite3 database located at `databasePath`.
RunMigration applies a single migration; this function assumes all database migrations are upward moving so design your migrations as such.