Exemplo n.º 1
0
            public override void RunCommand()
            {
                IDatabaseSource srcDb = m_source.GetConnection();
                IDatabaseSource dstDb = m_target.GetConnection();

                Async.SafeOpen(srcDb.Connection); Async.SafeOpen(dstDb.Connection);
                var src  = srcDb.InvokeLoadStructure(DatabaseStructureMembers.FullStructure, null);
                var dst  = dstDb.InvokeLoadStructure(DatabaseStructureMembers.FullStructure, null);
                var opts = new DbDiffOptions();

                opts.IgnoreColumnOrder = true;
                //var diff = new DatabaseDiff(src, dst, opts);
                ISqlDialect dial;

                if (Dialect != null)
                {
                    dial = (ISqlDialect)DialectAddonType.Instance.FindHolder(Dialect).CreateInstance();
                }
                else
                {
                    dial = new GenericDialect();
                }
                using (TextWriter fw = GetOutputStream())
                {
                    SqlOutputStream so  = new SqlOutputStream(dial, fw, new SqlFormatProperties());
                    ISqlDumper      dmp = dial.CreateDumper(so, new SqlFormatProperties());
                    dmp.AlterDatabase(src, dst, opts, new DbDefSource(src, DbDefSource.ReadOnly.Flag));
                    //dmp.TargetDb = new DbDefSource(dst, DbDefSource.ReadOnly.Flag);
                    //diff.Actions.GenerateScript(dmp);
                }
                Async.SafeClose(srcDb.Connection); Async.SafeClose(dstDb.Connection);
            }
Exemplo n.º 2
0
        protected string GenerateSqlScript(Action <ISqlDumper> dmpFunc)
        {
            var sw   = new StringWriter();
            var sqlo = new SqlOutputStream(DatabaseFactory.CreateDialect(), sw, new SqlFormatProperties());
            var dmp  = DatabaseFactory.CreateDumper(sqlo, new SqlFormatProperties());

            dmpFunc(dmp);
            return(sw.ToString());
        }
Exemplo n.º 3
0
        public static string GenerateScript(this IDatabaseFactory factory, Action <ISqlDumper> script, SqlFormatProperties props)
        {
            StringWriter sw = new StringWriter();
            ISqlDumper   dmp;
            var          so = new SqlOutputStream(factory.CreateDialect(), sw, props);

            dmp = factory.CreateDumper(so, props);
            script(dmp);
            return(sw.ToString());
        }
Exemplo n.º 4
0
        public SqlGeneratorModel(IConnectionProvider provider, TextWriter stream, GenerateSql options, DatabaseInfo database, ICancelableProcessCallback cancelable, Action <string> logger)
        {
            _cancelable  = cancelable;
            _provider    = provider;
            _logger      = logger;
            _factory     = _provider.Factory;
            _sqlo        = new SqlOutputStream(_factory.CreateDialect(), stream, new SqlFormatProperties());
            _dmp         = _factory.CreateDumper(_sqlo, new SqlFormatProperties());
            _options     = options;
            _database    = database;
            _dialectCaps = _factory.DialectCaps;

            FillWorkingSets();
        }