public async Task Migrate() { EnsureDatabase.For.PostgresqlDatabase(_factory.ConnectionString); using (var connection = _factory.CreateConnection()) { new [] { "hangfire", "labyrinth" } .ToList() .ForEach(db => { var exists = connection.ExecuteScalar <bool>($"SELECT true FROM pg_database WHERE datname = '{db}'"); if (!exists) { connection.Execute($"CREATE DATABASE {db}"); } }); } var upgrader = DeployChanges.To.PostgresqlDatabase(_factory.ConnectionString) .WithScriptsEmbeddedInAssembly(this.GetType().Assembly) .LogToConsole() .Build(); var result = upgrader.PerformUpgrade(); if (result.Successful) { _logger.LogInformation("Database upgrade successful"); } else { _logger.LogError("Database upgrade unsuccessful"); } await Task.Delay(0); }
public async Task <TEntity> GetById(string userName, string id) { using (var connection = _connectionFactory.CreateConnection()) { var result = await connection.QueryAsync <TEntity>($"SELECT * FROM {TableName(userName)} WHERE id={id}"); return(result.FirstOrDefault()); } }
public async Task <bool> Exists(string userName) { using (var connection = _factory.CreateConnection()) { return(await connection.ExecuteScalarAsync <bool>($"SELECT true FROM public.keys WHERE name='{userName}'")); } }