protected override void InitializeTarget() { base.InitializeTarget(); var uri = ConnectionStringName.GetConnectionString() ?? Uri; var nodes = uri.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(url => new Uri(url)); var connectionPool = new StaticConnectionPool(nodes); var config = new ConnectionConfiguration(connectionPool); if (RequireAuth) { config.BasicAuthentication(Username, Password); } if (ElasticsearchSerializer != null) { config = new ConnectionConfiguration(connectionPool, _ => ElasticsearchSerializer); } _client = new ElasticLowLevelClient(config); if (!string.IsNullOrEmpty(ExcludedProperties)) { _excludedProperties = ExcludedProperties.Split(new [] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList(); } }
protected override void Validate() { base.Validate(); if (!Assembly.HasValue()) { throw new CommandException(string.Format(MyResources.MissingOption, Assembly.LongName)); } if (ConnectionString.HasValue() || ConnectionProvider.HasValue()) { if (!ConnectionString.HasValue()) { throw new CommandException(string.Format(MyResources.MissingOption, ConnectionString.LongName)); } if (!ConnectionProvider.HasValue()) { throw new CommandException(string.Format(MyResources.MissingOption, ConnectionProvider.LongName)); } if (ConnectionStringName.HasValue()) { throw new CommandException( string.Format( MyResources.MutuallyExclusiveOptions, ConnectionStringName.LongName, ConnectionString.LongName)); } } }
private void EnsureConnectionOpen() { if (_client == null) { var uri = ConnectionStringName.GetConnectionString() ?? Uri; var nodes = uri.Render(new LogEventInfo()).Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(url => new Uri(url)); var connectionPool = new StaticConnectionPool(nodes); var config = new ConnectionSettings(connectionPool, sourceSerializer: (builtin, settings) => new JsonNetSerializer( builtin, settings, () => new JsonSerializerSettings { NullValueHandling = NullValueHandling.Include, ReferenceLoopHandling = ReferenceLoopHandling.Ignore }, resolver => resolver.NamingStrategy = new SnakeCaseNamingStrategy() )); if (RequireAuth) { config.BasicAuthentication(Username, Password); } if (DisableAutomaticProxyDetection) { config.DisableAutomaticProxyDetection(); } _client = new ElasticLowLevelClient(config); } }
internal void Populate(Settings settings) { var storeSettings = settings.Store; if (Type.HasValue()) { storeSettings.Type = Type; } if (Path.HasValue()) { storeSettings.Path = Path; } if (ConnectionString.HasValue()) { storeSettings.ConnectionString = ConnectionString; } #if !NETSTANDARD2_0 if (ConnectionStringName.HasValue()) { storeSettings.ConnectionStringName = ConnectionStringName; } #endif if (Size.HasValue) { storeSettings.Size = Size.Value; } if (RollupSeconds.HasValue) { storeSettings.RollupPeriod = TimeSpan.FromSeconds(RollupSeconds.Value); } if (BackupQueueSize.HasValue) { storeSettings.BackupQueueSize = BackupQueueSize.Value; } }
public ulong GetTaskKey() { Debug.Assert(Name != null); Debug.Assert(ConnectionStringName != null); return(_taskKey ?? (_taskKey = Hashing.XXHash64.Calculate(Name.ToLowerInvariant(), Encodings.Utf8) ^ Hashing.XXHash64.Calculate(ConnectionStringName.ToLowerInvariant(), Encodings.Utf8)).Value); }
protected override void InitializeTarget() { base.InitializeTarget(); _environment = EnvironmentKeyName?.GetConfigurationValue(); _connectionString = ConnectionStringName.GetConnectionString(); _redisConnectionManager = new RedisConnectionManager(_connectionString); }
///---------------------------------------------------------------------------------------- /// <summary> /// /// </summary> /// <returns></returns> public virtual string GetConnectionStringName() { if (ConnectionStringName.IsNullOrEmpty()) { throw new NullReferenceException("ConnectionStringName is undefined. Either set ConnectionStringName " + "or override medthod GetConnectionStringName()"); } return(ConnectionStringName); }
public void LoadConnectionString(string connectionStringName = null) { if (connectionStringName.IsNotNullOrEmpty()) { ConnectionStringName = connectionStringName; } if (ConnectionStringName.IsNullOrEmpty()) { throw new NullReferenceException("ConnectionStringName undefined"); } ConnectionString = Configuration.GetConnectionString(ConnectionStringName); }
protected override int Execute() { if (_script.HasValue()) { var sql = CreateExecutor().ScriptUpdate( _sourceMigration.Value(), _targetMigration.Value(), _force.HasValue(), ConnectionStringName.Value(), ConnectionString.Value(), ConnectionProvider.Value(), MigrationsConfig.Value()); Reporter.WriteData(sql); } else { Reporter.WriteInformation(MyResources.UpdateDatabaseCommand_VerboseInstructions); try { CreateExecutor().Update( _targetMigration.Value(), _force.HasValue(), ConnectionStringName.Value(), ConnectionString.Value(), ConnectionProvider.Value(), MigrationsConfig.Value()); } catch (WrappedException ex) { if (ex.Type == "System.Data.Entity.Migrations.Infrastructure.AutomaticMigrationsDisabledException") { Reporter.WriteWarning(ex.Message); Reporter.WriteWarning(MyResources.AutomaticMigrationDisabledInfo); } else { throw; } } } return(base.Execute()); }
protected override int Execute() { Reporter.WriteInformation(MyResources.GetMigrationsCommand_Intro); var migrations = CreateExecutor().GetDatabaseMigrations( ConnectionStringName.Value(), ConnectionString.Value(), ConnectionProvider.Value(), MigrationsConfig.Value()); if (migrations.Any()) { foreach (var migration in migrations) { Reporter.WriteData(migration); } } else { Reporter.WriteInformation(MyResources.GetMigrationsCommand_NoHistory); } return(base.Execute()); }
protected override int Execute() { var migrationsDirectory = _migrationsDir.Value(); var qualifiedContextTypeName = CreateExecutor().GetContextType( _context.Value(), _contextAssembly.Value()); var isVb = string.Equals(Language.Value(), "VB", StringComparison.OrdinalIgnoreCase); var fileName = isVb ? "Configuration.vb" : "Configuration.cs"; var templateStream = typeof(MigrationsEnableCommand).Assembly.GetManifestResourceStream("System.Data.Entity.Tools.Templates." + fileName); Debug.Assert(templateStream != null); string template; using (var templateReader = new StreamReader(templateStream, Encoding.UTF8)) { template = templateReader.ReadToEnd(); } var tokens = new Dictionary <string, string>(); if (!string.IsNullOrWhiteSpace(migrationsDirectory)) { tokens["migrationsDirectory"] = "\r\n MigrationsDirectory = " + (!isVb ? "@" : null) + "\"" + migrationsDirectory + "\"" + (!isVb ? ";" : null); } else { migrationsDirectory = "Migrations"; } tokens["enableAutomaticMigrations"] = _auto.HasValue() ? (isVb ? "True" : "true") : (isVb ? "False" : "false"); var rootNamespace = RootNamespace.Value(); var migrationsNamespace = migrationsDirectory.Replace("\\", "."); tokens["namespace"] = !isVb && !string.IsNullOrWhiteSpace(rootNamespace) ? rootNamespace + "." + migrationsNamespace : migrationsNamespace; if (isVb && qualifiedContextTypeName.StartsWith(rootNamespace + ".")) { tokens["contextType"] = qualifiedContextTypeName.Substring(rootNamespace.Length + 1).Replace('+', '.'); } else { tokens["contextType"] = qualifiedContextTypeName.Replace('+', '.'); } if (Path.IsPathRooted(migrationsDirectory)) { throw new CommandException(string.Format(MyResources.MigrationsDirectoryParamIsRooted, migrationsDirectory)); } var absoluteMigrationsDirectory = Path.Combine(ProjectDir.Value(), migrationsDirectory); var absolutePath = Path.Combine(absoluteMigrationsDirectory, fileName); if (!_force.HasValue() && File.Exists(absolutePath)) { throw new CommandException(string.Format(MyResources.MigrationsAlreadyEnabled, Assembly.Value())); } var fullMigrationsNamespace = rootNamespace + "." + migrationsNamespace; Reporter.WriteInformation(MyResources.EnableMigrations_BeginInitialScaffold); var scaffoldedMigration = CreateExecutor().ScaffoldInitialCreate( ConnectionStringName.Value(), ConnectionString.Value(), ConnectionProvider.Value(), qualifiedContextTypeName, _contextAssembly.Value(), fullMigrationsNamespace, _auto.HasValue(), migrationsDirectory); if (scaffoldedMigration != null) { if (!_auto.HasValue()) { WriteMigration(scaffoldedMigration); Reporter.WriteWarning(string.Format( MyResources.EnableMigrations_InitialScaffold, scaffoldedMigration.MigrationId)); } // We found an initial create so we need to add an explicit ContextKey // assignment to the configuration tokens["contextKey"] = "\r\n ContextKey = " + "\"" + qualifiedContextTypeName + "\"" + (!isVb ? ";" : null); } Directory.CreateDirectory(absoluteMigrationsDirectory); File.WriteAllText(absolutePath, new TemplateProcessor().Process(template, tokens), Encoding.UTF8); if (_json.HasValue()) { string migrationPath = null; string migrationDesignerPath = null; string migrationResourcesPath = null; if (scaffoldedMigration != null) { migrationPath = Path.Combine( absoluteMigrationsDirectory, scaffoldedMigration.MigrationId + "." + scaffoldedMigration.Language); migrationDesignerPath = Path.Combine( absoluteMigrationsDirectory, scaffoldedMigration.MigrationId + ".resx"); migrationResourcesPath = Path.Combine( absoluteMigrationsDirectory, scaffoldedMigration.MigrationId + ".Designer." + scaffoldedMigration.Language); } Reporter.WriteData("{"); Reporter.WriteData(" \"migrationsConfiguration\": " + Json.Literal(absolutePath) + ","); Reporter.WriteData(" \"migration\": " + Json.Literal(migrationPath) + ","); Reporter.WriteData(" \"migrationResources\": " + Json.Literal(migrationDesignerPath) + ","); Reporter.WriteData(" \"migrationDesigner\": " + Json.Literal(migrationResourcesPath)); Reporter.WriteData("}"); } return(base.Execute()); }
public static string GetConnectionString(this IConfiguration configuration, ConnectionStringName connectionStringName) { return(configuration.GetConnectionString(Enum.GetName(typeof(ConnectionStringName), connectionStringName))); }
protected override int Execute() { var scaffoldedMigration = CreateExecutor().Scaffold( _name.Value, ConnectionStringName.Value(), ConnectionString.Value(), ConnectionProvider.Value(), MigrationsConfig.Value(), _ignoreChanges.HasValue()); Reporter.WriteInformation( string.Format( !scaffoldedMigration.IsRescaffold ? MyResources.ScaffoldingMigration : MyResources.RescaffoldingMigration, _name.Value)); var userCodePath = WriteMigration(scaffoldedMigration, scaffoldedMigration.IsRescaffold, _force.HasValue(), _name.Value); if (!scaffoldedMigration.IsRescaffold) { Reporter.WriteWarning(string.Format(MyResources.SnapshotBehindWarning, _name.Value)); var databaseMigrations = CreateExecutor().GetDatabaseMigrations( ConnectionStringName.Value(), ConnectionString.Value(), ConnectionProvider.Value(), MigrationsConfig.Value()) .Take(2).ToList(); var lastDatabaseMigration = databaseMigrations.FirstOrDefault(); if ((lastDatabaseMigration != null) && string.Equals(lastDatabaseMigration.MigrationName(), _name.Value, StringComparison.Ordinal)) { var revertTargetMigration = databaseMigrations.ElementAtOrDefault(1); Reporter.WriteWarning( string.Format( MyResources.DidYouMeanToRescaffold, _name.Value, revertTargetMigration ?? "$InitialDatabase", Path.GetFileName(userCodePath))); } } if (_json.HasValue()) { string migrationPath = null; string migrationDesignerPath = null; string migrationResourcesPath = null; if (scaffoldedMigration != null) { var absoluteMigrationsDirectory = Path.Combine(ProjectDir.Value(), scaffoldedMigration.Directory); migrationPath = Path.Combine( absoluteMigrationsDirectory, scaffoldedMigration.MigrationId + "." + scaffoldedMigration.Language); migrationDesignerPath = Path.Combine( absoluteMigrationsDirectory, scaffoldedMigration.MigrationId + ".resx"); migrationResourcesPath = Path.Combine( absoluteMigrationsDirectory, scaffoldedMigration.MigrationId + ".Designer." + scaffoldedMigration.Language); } Reporter.WriteData("{"); Reporter.WriteData(" \"migration\": " + Json.Literal(migrationPath) + ","); Reporter.WriteData(" \"migrationResources\": " + Json.Literal(migrationDesignerPath) + ","); Reporter.WriteData(" \"migrationDesigner\": " + Json.Literal(migrationResourcesPath)); Reporter.WriteData("}"); } return(base.Execute()); }
public TableNameController(ConnectionStringName db) { _db = db; }
protected override void Execute(CodeActivityContext context) { Value.Set(context, ConfigurationManager.ConnectionStrings[ConnectionStringName.Get(context)].ConnectionString); }