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)); } }
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); }