public void Bim( [Option(LongName = "connectionString", ShortName = "c")] string connectionString, [Option(LongName = "sqlType", ShortName = "t")] string sqlType, [Option(LongName = "databaseName", ShortName = "b")] string databaseName, [Option(LongName = "patternFileName", ShortName = "p")] string patternFileName) { var version = SqlEngineVersions.GetVersion(sqlType); var connString = new NamedConnectionString( version.GetType().Name, version.ProviderName, connectionString, version.VersionString); var context = CreateContext(version); var ddlReader = DataDefinitionReaderFactory.CreateDataDefinitionReader(connString, context, null); var dd = ddlReader.GetDatabaseDefinition(); var documenterContext = CreateDocumenterContext(context, patternFileName); var generator = new BimGenerator(documenterContext, version, databaseName); generator.Generate(dd); }
public LatestSqlVersionsAttribute(bool forceIntegrationTests = false) { _forceIntegrationTests = forceIntegrationTests; Versions = SqlEngineVersions.GetLatestExecutableVersions() .Where(x => x is MsSqlVersion || x is OracleVersion || x is SqLiteVersion) .ToList(); }
private SqlEngineVersion GetVersion() { if (Keys.Any(k => SqlEngineVersions.GetAllVersions <GenericVersion>().Contains(k))) { return(SqlEngineVersions.GetLatestVersionOfDialect <GenericVersion>()); } return(Keys.Last()); }
public void Generate( [Option(LongName = "connectionString", ShortName = "c", Description = "Provide a valid connection string to the database")] string connectionString, [Option(LongName = "singleOrMulti", ShortName = "m", Description = "multi for multi file, single for single file generation")] string singleOrMulti, [Option(LongName = "sqlType", ShortName = "t")] string sqlType, [Option(LongName = "namespace", ShortName = "n")] string @namespace, [Option(LongName = "newDatabaseName", ShortName = "b")] string newDatabaseName, [Option(LongName = "patternFileName", ShortName = "p")] string patternFileName, [Option(LongName = "flags", ShortName = "f")] List <string> flags) { var version = SqlEngineVersions.GetVersion(sqlType); var connString = new NamedConnectionString( version.GetType().Name, version.ProviderName, connectionString, version.VersionString); var context = CreateContext(version); var ddlReader = DataDefinitionReaderFactory.CreateDataDefinitionReader(connString, context, null); var dd = ddlReader.GetDatabaseDefinition(); var generatorContext = CreateGeneratorContext(context, patternFileName); if (flags != null) { SetSettingsFromFlags(flags, generatorContext.GeneratorSettings); } var writer = CSharpWriterFactory.GetCSharpWriter(version, generatorContext, newDatabaseName); var generator = new CSharpGenerator(writer, version, newDatabaseName, @namespace); if (singleOrMulti == "s" || singleOrMulti == "single") { generator.GenerateSingleFile(dd, newDatabaseName + ".cs"); } else { generator.GenerateMultiFile(dd); } }
public void Check( [Option(LongName = "connectionString", ShortName = "c")] string connectionString, [Option(LongName = "sqlType", ShortName = "t")] string sqlType, [Option(LongName = "patternFileName", ShortName = "p")] string patternFileName, [Option(LongName = "flags", ShortName = "f")] List <string> flags) { var version = SqlEngineVersions.GetVersion(sqlType); var connString = new NamedConnectionString( version.GetType().Name, version.ProviderName, connectionString, version.VersionString); var context = CreateContext(version); var sqlExecuter = SqlExecuterFactory.CreateSqlExecuter(connString, context); var databaseName = sqlExecuter.GetDatabase(); var ddlReader = DataDefinitionReaderFactory.CreateDataDefinitionReader(connString, context, null); var dd = ddlReader.GetDatabaseDefinition(); var documenterContext = CreateDocumenterContext(context, patternFileName); if (flags != null) { SetSettingsFromFlags(flags, documenterContext.DocumenterSettings); } var schemaCheckerDocumenter = new SchemaCheckerDocumenter(documenterContext, version, databaseName, null); schemaCheckerDocumenter.Document(dd); }
public void DropAll( [Option(LongName = "connectionString", ShortName = "c")] string connectionString, [Option(LongName = "sqlType", ShortName = "t")] string sqlType ) { var version = SqlEngineVersions.GetVersion(sqlType); var connString = new NamedConnectionString("", version.ProviderName, connectionString, version.VersionString); var context = CreateContext(version); var generator = SqlGeneratorFactory.CreateGenerator(version, context); var executer = SqlExecuterFactory.CreateSqlExecuter(connString, generator); var dc = new DatabaseCreator(null, executer); dc.DropAllViews(); dc.DropAllForeignKeys(); dc.DropAllTables(); // TODO needs databasedefinition // dc.DropAllSchemas(); }
public void ChangeDocument( [Option(LongName = "connectionStringOriginal")] string connectionStringOriginal, [Option(LongName = "connectionStringNew")] string connectionStringNew, [Option(LongName = "sqlTypeOriginal")] string sqlTypeOriginal, [Option(LongName = "sqlTypeNew")] string sqlTypeNew, [Option(LongName = "patternFileName", ShortName = "p")] string patternFileName, [Option(LongName = "patternFileNameOriginal")] string patternFileNameOriginal, [Option(LongName = "patternFileNameNew")] string patternFileNameNew, [Option(LongName = "flags", ShortName = "f")] List <string> flags) { var versionOriginal = SqlEngineVersions.GetVersion(sqlTypeOriginal); var contextOriginal = CreateContext(versionOriginal); var connString = new NamedConnectionString( versionOriginal.GetType().Name, versionOriginal.ProviderName, connectionStringOriginal, versionOriginal.VersionString); var sqlExecuterOriginal = SqlExecuterFactory.CreateSqlExecuter(connString, contextOriginal); var databaseNameOriginal = sqlExecuterOriginal.GetDatabase(); var ddlReaderOriginal = DataDefinitionReaderFactory.CreateDataDefinitionReader(connString, contextOriginal, null); //var ddOriginal = ddlReaderOriginal.GetDatabaseDefinition(); var ddOriginalTask = Task.Run(() => ddlReaderOriginal.GetDatabaseDefinition()); if (patternFileNameOriginal == null) { patternFileNameOriginal = patternFileName; } if (patternFileNameNew == null) { patternFileNameNew = patternFileName; } var changeDocumenterContext = CreateChangeDocumenterContext(contextOriginal, patternFileNameOriginal, patternFileNameNew); if (flags != null) { SetSettingsFromFlags(flags, changeDocumenterContext.DocumenterSettings); } var versionNew = SqlEngineVersions.GetVersion(sqlTypeNew); var contextNew = CreateContext(versionNew); var connStringNew = new NamedConnectionString( versionNew.GetType().Name, versionNew.ProviderName, connectionStringNew, versionNew.VersionString); var sqlExecuterNew = SqlExecuterFactory.CreateSqlExecuter(connStringNew, contextNew); var databaseNameNew = sqlExecuterNew.GetDatabase(); var ddlReaderNew = DataDefinitionReaderFactory.CreateDataDefinitionReader(connStringNew, contextNew, null); //var ddNew = ddlReaderNew.GetDatabaseDefinition(); var ddNewTask = Task.Run(() => ddlReaderNew.GetDatabaseDefinition()); var changeDocumenter = new ChangeDocumenter(changeDocumenterContext, versionOriginal, databaseNameOriginal, databaseNameNew); var ddOriginal = ddOriginalTask.Result; var ddNew = ddNewTask.Result; changeDocumenter.Document(ddOriginal, ddNew); }