Exemple #1
0
        internal static AccessorSetup GetSetup(DbAccessorType type, IDb db)
        {
            var aggregator = new DbAggregator();
            var mapper     = new DbMapper(db);

            Func <ISqlBuilder> builders;

            switch (type)
            {
            case DbAccessorType.MsSql:
            {
                Func <IMsSqlBuilder> msbuilders = () => new MsSqlBuilder();

                var msscripter = new MsSqlScripter(db, msbuilders);

                return(new AccessorSetup(msscripter, mapper, aggregator));
            }

            case DbAccessorType.SqLite:
            {
                builders = () => new SqLiteBuilder();
            }
            break;

            case DbAccessorType.MySql:
            {
                builders = () => new MySqlBuilder();
            }
            break;

            case DbAccessorType.Oracle:
            {
                builders = () => new OracleBuilder();
            }
            break;

            default:
                throw new InvalidOperationException(string.Format("Unsupported DbAccessorType value of '{0}'", type));
            }

            var scripter = new DbScripter(db, builders);

            return(new AccessorSetup(scripter, mapper, aggregator));
        }
Exemple #2
0
        private void ExportFilesToScriptAndManifest(Urn[] objects, HashSet <Urn> hash = null)
        {
            const string fileNameFormat = "{0}_{1}.SQL";

            using (var file = System.IO.File.CreateText(System.IO.Path.Combine(directory, ManifestFileName)))
            {
                foreach (var item in DbScripter.GetObjectsInDepedencyOrder(objects))
                {
                    if (hash == null || !hash.Contains(item))
                    {
                        if (hash != null)
                        {
                            hash.Add(item);
                        }
                        string objName = null;

                        var objEntity = DbScripter.Server.GetSmoObject(item);
                        if (objEntity as View != null)
                        {
                            objName = (objEntity as View).Name;
                        }
                        else if (objEntity as Table != null)
                        {
                            objName = (objEntity as Table).Name;
                        }
                        else
                        {
                            throw new Exception(string.Format("Urn Type Not Expected: {0}", objEntity));
                        }

                        if (objName != null)
                        {
                            var onlyData = DbScripter.Options.ScriptData;
                            var fileName = string.Format(fileNameFormat, onlyData ? "Data" : item.Type, objName);
                            file.WriteLine(fileName);
                            DbScripter.Options.FileName = System.IO.Path.Combine(directory, fileName);
                            Console.WriteLine($"Exporting... {fileName}");
                            DbScripter.EnumScript(new[] { item });
                        }
                    }
                }
            }
        }