public virtual DatabaseModel Create( [NotNull] string connectionString, [NotNull] TableSelectionSet tableSelectionSet) { Check.NotEmpty(connectionString, nameof(connectionString)); Check.NotNull(tableSelectionSet, nameof(tableSelectionSet)); ResetState(); using (_connection = new SqliteConnection(connectionString)) { _connection.Open(); _tableSelectionSet = tableSelectionSet; string databaseName = null; try { databaseName = Path.GetFileNameWithoutExtension(_connection.DataSource); } catch (ArgumentException) { // graceful fallback } _databaseModel.DatabaseName = !string.IsNullOrEmpty(databaseName) ? databaseName : _connection.DataSource; GetSqliteMaster(); GetColumns(); GetIndexes(); foreach (var table in _databaseModel.Tables) { SqliteDmlParser.ParseTableDefinition(table, _tableDefinitions[table.Name]); } GetForeignKeys(); return(_databaseModel); } }
public void It_safely_splits(char sep, string input, string[] results) { Assert.Equal(results, SqliteDmlParser.SafeSplit(input, sep)); }
public void It_unescapes_strings(string input, string result) { Assert.Equal(result, SqliteDmlParser.UnescapeString(input)); }
public void It_extracts_statements(string sql, string[] statements) { Assert.Equal(statements, SqliteDmlParser.ParseStatements(sql).ToArray()); }