public void GenerateInsertStatmentsForDatabase(DatabaseContainer database)
        {
            ISQLGenerator generator = SqlGeneratorFactory.Factory(database.DatabaseType);

            this._database     = database;
            textBoxOutput.Text = generator.GenerateInsertStatmentsForDatabase(this._database);
        }
        public void NewTableTest(SqlEngineVersion version)
        {
            _sqlExecuterTestAdapter.Check(version);
            var dd = new TestDatabaseSimple();

            _sqlExecuterTestAdapter.InitializeAndCreate(version.UniqueName, dd);

            var context = new Context
            {
                Settings = TestHelper.GetDefaultTestSettings(version),
                Logger   = TestHelper.CreateLogger()
            };

            var migrationGenerator = SqlGeneratorFactory.CreateMigrationGenerator(version, context);

            var executer = _sqlExecuterTestAdapter.GetExecuter(version.UniqueName);

            var databaseMigrator = new DatabaseMigrator(executer, migrationGenerator);
            var tableNew         = new TableNew
            {
                SchemaAndTableName = "NewTableToMigrate"
            };

            ((SqlTable)tableNew).AddInt32("Id", false).SetPK().SetIdentity();

            new PrimaryKeyNamingDefaultStrategy().SetPrimaryKeyName(tableNew.Properties.OfType <PrimaryKey>().First());

            ((SqlTable)tableNew).AddNVarChar("Name", 100);

            dd.AddTable(tableNew);

            databaseMigrator.NewTable(tableNew);
        }
        public void SqlGeneratorFactory_Access()
        {
            var databaseType             = DatabaseType.Access;
            var expectedSqlGeneratorType = typeof(AccessSqlGenerator);

            var sqlGenerator = new SqlGeneratorFactory().CreateSqlGenerator(databaseType);

            Assert.IsTrue(expectedSqlGeneratorType.Equals(sqlGenerator.GetType()));
        }
        public void SqlGeneratorFactory_Redshift()
        {
            var databaseType             = DatabaseType.Redshift;
            var expectedSqlGeneratorType = typeof(RedshiftSqlGenerator);

            var sqlGenerator = new SqlGeneratorFactory().CreateSqlGenerator(databaseType);

            Assert.IsTrue(expectedSqlGeneratorType.Equals(sqlGenerator.GetType()));
        }
        public void SqlGeneratorFactory_SQLServer()
        {
            var databaseType             = DatabaseType.SqlServer;
            var expectedSqlGeneratorType = typeof(SqlServerSqlGenerator);

            var sqlGenerator = new SqlGeneratorFactory().CreateSqlGenerator(databaseType);

            Assert.IsTrue(expectedSqlGeneratorType.Equals(sqlGenerator.GetType()));
        }
        public void SqlGeneratorFactory_PostgreSQL()
        {
            var databaseType             = DatabaseType.PostgreSQL;
            var expectedSqlGeneratorType = typeof(PgSqlGenerator);

            var sqlGenerator = new SqlGeneratorFactory().CreateSqlGenerator(databaseType);

            Assert.IsTrue(expectedSqlGeneratorType.Equals(sqlGenerator.GetType()));
        }
Пример #7
0
        private void postgresToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var clonedDatabase = this._database.Clone();

            clonedDatabase.TransformToPostgres();

            this._userControlGenerate.Generate(clonedDatabase, SqlGeneratorFactory.Factory(DatabaseContainer.DatabaseTypePostgreSQL));
            this.setPanelUserControl(this._userControlGenerate);
        }
Пример #8
0
#pragma warning disable IDE1006 // Naming Styles
        public void _020_DropTable(SqlEngineVersion version)
#pragma warning restore IDE1006 // Naming Styles
        {
            _sqlExecuterTestAdapter.Check(version);
            _sqlExecuterTestAdapter.Initialize(version.UniqueName);

            var table = new SqlTable("HierarchyFromCsvToSqlTests");

            var generator = SqlGeneratorFactory.CreateGenerator(version, _sqlExecuterTestAdapter.GetContext(version));
            var sql       = generator.DropTable(table);
            var result    = _sqlExecuterTestAdapter.ExecuteNonQuery(version.UniqueName, sql);

            if (result != null)
            {
                Assert.Inconclusive(result);
            }
        }
Пример #9
0
        public void Execute()
        {
            var context = new ObjectBuilderContext {
                Options = _dataProvider.Options
            };
            var treeBuilderFactory = new TreeBuilderFactory(_objectBuilderConfig);
            var treeBuilder        = treeBuilderFactory.GetTreeBuilder(context);

            treeBuilder.GenerateAnalysisTree(context);
            var sqlGeneratorFactory = new SqlGeneratorFactory(_objectBuilderConfig);
            var sqlGenerator        = sqlGeneratorFactory.GetSqlGenerator(context);

            sqlGenerator.GenerateSql(context);
            var sqlExecutorFactory = new SqlExecutorFactory(_objectBuilderConfig);
            var sqlExecutor        = sqlExecutorFactory.GetSqlExecutor(context);

            sqlExecutor.ExecuteQuery(context);
        }
Пример #10
0
#pragma warning disable IDE1006 // Naming Styles
        public void _010_GenerateScriptAndCreateTable(SqlEngineVersion version)
#pragma warning restore IDE1006 // Naming Styles
        {
            _sqlExecuterTestAdapter.Check(version);
            _sqlExecuterTestAdapter.InitializeAndCreate(version.UniqueName);

            var dd = new DatabaseDefinition(null, new[] { MsSqlVersion.MsSql2016.GetTypeMapper(), OracleVersion.Oracle12c.GetTypeMapper(), SqLiteVersion.SqLite3.GetTypeMapper() });

            var table  = new SqlTable("HierarchyFromCsvToSqlTests");
            var column = table.AddInt32("Id");

            column.Properties.Add(new Identity(column)
            {
                Increment = 1, Seed = 1
            });
            table.AddNVarChar("Name", 100);

            dd.AddTable(table);

            var context = new Context
            {
                Settings = TestHelper.GetDefaultTestSettings(version),
                Logger   = TestHelper.CreateLogger()
            };

            var generator = SqlGeneratorFactory.CreateGenerator(version, context);

            var sql = generator.CreateTable(table);

            var result = _sqlExecuterTestAdapter.ExecuteNonQuery(version.UniqueName, sql);

            if (result != null)
            {
                Assert.Inconclusive(result);
            }
        }
Пример #11
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();
        }
        public void CreateDbConnection_BadDatabaseType()
        {
            var databaseType = (DatabaseType)15;

            var databaseConnection = new SqlGeneratorFactory().CreateSqlGenerator(databaseType);
        }
        public void FkCheckNoCheckTest()
        {
            var version = MsSqlVersion.MsSql2016;

            var dd = new TestDatabaseFk();

            dd.SetVersions(version.GetTypeMapper());
            Init(version, dd);

            var ddlReader = DataDefinitionReaderFactory.CreateDataDefinitionReader(
                SqlExecuterTestAdapter.ConnectionStrings[version.UniqueName]
                , SqlExecuterTestAdapter.GetContext(version), dd.GetSchemaNames().ToList());
            var ddInDatabase = ddlReader.GetDatabaseDefinition();

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

            Assert.AreEqual("true", fk.SqlEngineVersionSpecificProperties[version, "Nocheck"]);

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

            var comparer = new Comparer(SqlExecuterTestAdapter.GetContext(version));
            var changes  = comparer.Compare(ddInDatabase, dd);

            _ = changes[0] as ForeignKeyChange;

            _ = new DatabaseMigrator(SqlExecuterTestAdapter.GetExecuter(version.UniqueName), SqlGeneratorFactory.CreateMigrationGenerator(version, SqlExecuterTestAdapter.GetContext(version)));

            // TODO change FK
            // databaseMigrator.
        }
        private static DatabaseMigrator ProcessAndGetMigrator(SqlEngineVersion version, DatabaseDefinitions dds, out List <IMigration> changes)
        {
            Init(version, dds.Original);

            var ddlReader    = DataDefinitionReaderFactory.CreateDataDefinitionReader(SqlExecuterTestAdapter.ConnectionStrings[version.UniqueName], SqlExecuterTestAdapter.GetContext(version), dds.Original.GetSchemaNames().ToList());
            var ddInDatabase = ddlReader.GetDatabaseDefinition();

            var comparer = new Comparer(SqlExecuterTestAdapter.GetContext(version));

            changes = comparer.Compare(ddInDatabase, dds.New);

            var databaseMigrator = new DatabaseMigrator(SqlExecuterTestAdapter.GetExecuter(version.UniqueName), SqlGeneratorFactory.CreateMigrationGenerator(version, SqlExecuterTestAdapter.GetContext(version)));

            return(databaseMigrator);
        }