private async Task CreateDatabaseAsync(SqliteConnection connection) { await connection.CreateCommand("BEGIN; SELECT InitSpatialMetaData(); COMMIT;").ExecuteNonQueryAsync(); await connection.ExecuteNonQueryAsync(@" CREATE TABLE IF NOT EXISTS IPRangeProviders ( Id INTEGER NOT NULL PRIMARY KEY ASC, Name TEXT NOT NULL ); ").ConfigureAwait(false); await connection.ExecuteNonQueryAsync(@" CREATE TABLE IF NOT EXISTS Areas ( Id INTEGER NOT NULL PRIMARY KEY ASC, Name TEXT NOT NULL, NamesByCultures TEXT, Kind INTEGER NOT NULL, Code TEXT, AdminAreaLevel1Id INTEGER, AdminAreaLevel2Id INTEGER, CountryId INTEGER ); CREATE INDEX IF NOT EXISTS IDX_Area_Kind ON Areas (Kind); SELECT AddGeometryColumn('Areas', 'Coordinates', 4326, 'POINT', 'XY'); SELECT CreateSpatialIndex('Areas', 'Coordinates'); ").ConfigureAwait(false); await connection.ExecuteNonQueryAsync(@" CREATE TABLE IF NOT EXISTS IPRangeInfos ( AreaId INTEGER NOT NULL, ProviderId INTEGER NOT NULL, StartLow INTEGER NOT NULL, StartHigh INTEGER, EndLow INTEGER NOT NULL, EndHigh INTEGER ); ").ConfigureAwait(false); }