Esempio n. 1
0
        protected override void ProcessRecord()
        {
            base.ProcessRecord();

            DbConnectionInfo dbConnectionInfo = null;
            var cstr = "";

            if (!string.IsNullOrWhiteSpace(ConnectionString))
            {
                dbConnectionInfo = new DbConnectionInfo(ConnectionString, "System.Data.SqlClient");
                WriteVerbose(string.Format("Using database: {0}", ConnectionString));
                cstr = ConnectionString;
            }
            else if (!string.IsNullOrWhiteSpace(ConnectionName))
            {
                var config = TralusConfiguration.GetConfiguration();
                ConnectionStringSettings connectionString = config.ConnectionStrings.ConnectionStrings[ConnectionName];

                if (connectionString != null)
                {
                    WriteVerbose(string.Format("Using database: [{0}]: {1}", connectionString.Name, connectionString.ConnectionString));
                    dbConnectionInfo = new DbConnectionInfo(connectionString.ConnectionString, connectionString.ProviderName);
                    cstr             = connectionString.ConnectionString;
                }
                else
                {
                    WriteWarning(string.Format("Connection string not found: {0}", ConnectionName));
                }
            }

            if (!string.IsNullOrWhiteSpace(cstr))
            {
                foreach (var migrationAssembly in MigrationAssemblies)
                {
                    try
                    {
                        var assembly = Assembly.Load(migrationAssembly);

                        var configTypes = assembly.GetTypes()
                                          .Where(t => t.IsSubclassOf(typeof(DbMigrationsConfiguration)) && !t.IsAbstract);

                        var configs = configTypes.Select(Activator.CreateInstance);

                        foreach (var config in configs)
                        {
                            var type   = config.GetType();
                            var method = type.GetMethod("ApplySeed");
                            method.Invoke(config, new object[] { cstr });
                        }
                    }

                    catch (Exception exception)
                    {
                        WriteWarning(string.Format("Unable to load assembly: {0}", migrationAssembly));
                        WriteWarning(exception.ToString());
                    }
                }
            }
        }
        protected override void ProcessRecord()
        {
            base.ProcessRecord();

            var config = TralusConfiguration.GetConfiguration();

            foreach (ConnectionStringSettings connectionString in config.ConnectionStrings.ConnectionStrings)
            {
                WriteObject(string.Format("[{0}]:\t\t\t{1}", connectionString.Name, connectionString.ConnectionString));
            }
        }
Esempio n. 3
0
        protected Migrator GetMigrator()
        {
            var migrator = new Migrator {
                LogDetail = WriteObject, LogWarning = WriteWarning
            };

            if (!string.IsNullOrWhiteSpace(ConnectionString))
            {
                migrator.TargetDatabase = new DbConnectionInfo(ConnectionString, "System.Data.SqlClient");
                WriteVerbose(string.Format("Using database: {0}", ConnectionString));
            }
            else if (!string.IsNullOrWhiteSpace(ConnectionName))
            {
                var config = TralusConfiguration.GetConfiguration();
                ConnectionStringSettings connectionString = config.ConnectionStrings.ConnectionStrings[ConnectionName];

                if (connectionString != null)
                {
                    WriteVerbose(string.Format("Using database: [{0}]: {1}", connectionString.Name, connectionString.ConnectionString));
                    migrator.TargetDatabase = new DbConnectionInfo(connectionString.ConnectionString, connectionString.ProviderName);
                }
                else
                {
                    WriteWarning(string.Format("Connection string not found: {0}", ConnectionName));
                }
            }


            foreach (var migrationAssembly in MigrationAssemblies)
            {
                try
                {
                    var assembly = Assembly.Load(migrationAssembly);
                    migrator.MigrationAssemblies.Add(assembly);

                    if (assembly == null)
                    {
                        throw new Exception("Unable to load module. Returned assembly is null.");
                    }
                }

                catch (Exception exception)
                {
                    WriteWarning(string.Format("Unable to load assembly: {0}", migrationAssembly));
                    WriteWarning(exception.ToString());
                }
            }
            return(migrator);
        }