public void FkCheckNoCheckTest()
        {
            var version = MsSqlVersion.MsSql2016;

            var ddOriginal = new TestDatabaseFk();

            ddOriginal.SetVersions(version.GetTypeMapper());

            var ddFkChanged = new TestDatabaseFk();

            ddFkChanged.SetVersions(version.GetTypeMapper());

            var fk = ddFkChanged.GetTable("Foreign").Properties.OfType <ForeignKey>().First();

            fk.SqlEngineVersionSpecificProperties[version, "Nocheck"] = "false";

            var changeDocumenter = new ChangeDocumenter(DataDefinitionDocumenterTestsHelper.CreateTestChangeContext(version), version, "TestDatabaseFk", "TestDatabaseFk_FkCheckNoCheckTest");

            changeDocumenter.Document(ddOriginal, ddFkChanged);
        }
        private static void Document(SqlEngineVersion version, DatabaseDefinitions dds)
        {
            var changeDocumenter = new ChangeDocumenter(DataDefinitionDocumenterTestsHelper.CreateTestChangeContext(version), version, dds.DbNameOriginal, dds.DbNameNew);

            changeDocumenter.Document(dds.Original, dds.New);
        }
Пример #3
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);
        }