Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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();
        }
Esempio n. 3
0
            protected override ISqlExecuter Open()
            {
                var conn = @"server=127.0.0.1;uid=sa;pwd=123456;database=b2c_admin";

                return(SqlExecuterFactory.SqlServer(conn));
            }
Esempio n. 4
0
            protected override ISqlExecuter Open()
            {
                var conn = @"server=127.0.0.1;port=3306;sslmode=none;uid=sa;pwd=123456;database=b2c_admin";

                return(SqlExecuterFactory.MySql(conn));
            }
Esempio n. 5
0
        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);
        }