public override void Process(CreateSchemaExpression expression) { var password = expression.GetAdditionalFeature(SqlAnywhereExtensions.SchemaPassword, string.Empty); if (string.IsNullOrEmpty(password)) { throw new Exception("Create schema requires connection for the schema user. No password specified in CreateSchemaExpression."); } if (!Exists("SELECT count(*) FROM \"dbo\".\"syslogins\" WHERE \"name\"='{0}'", FormatHelper.FormatSqlEscape(expression.SchemaName))) { // Try to automatically generate the user Announcer.Say("Creating user {0}.", expression.SchemaName); Execute("CREATE USER \"{0}\" IDENTIFIED BY \"{1}\"", expression.SchemaName, password); } var sql = Generator.Generate(expression); string connectionString = ReplaceUserIdAndPasswordInConnectionString(expression.SchemaName, password); Announcer.Say("Creating connection for user {0} to create schema.", expression.SchemaName); var connection = Factory.CreateConnection(connectionString); EnsureConnectionIsOpen(connection); Announcer.Say("Beginning out of scope transaction to create schema."); var transaction = connection.BeginTransaction(); try { ExecuteNonQuery(connection, transaction, sql); transaction.Commit(); Announcer.Say("Out of scope transaction to create schema committed."); } catch { transaction.Rollback(); Announcer.Say("Out of scope transaction to create schema rolled back."); throw; } finally { transaction?.Dispose(); connection.Dispose(); } }
public override void Process(CreateSchemaExpression expression) { Process(new CreateUserExpression(expression)); if (SchemaExists(expression.SchemaName)) { try { Process(ExtendedGeneratorField.GenerateDefaultPrivilegesSql(expression.SchemaName)); } catch { Logger.LogSay($"Error when try to append DefaultPrivileges to schema [{expression.SchemaName}]. Probably because this is already done...."); } return; } Logger.LogSay($"Creating Postgres schema '{expression.SchemaName}'..."); Process(ExtendedGeneratorField.Generate(expression)); Logger.LogSay($"Created Postgres schema '{expression.SchemaName}'..."); }
public string Generate(CreateSchemaExpression expression) { var schemaPassword = expression.SchemaName; if (expression.SchemaName.Equals(DbMigrationConfig.Schema, StringComparison.OrdinalIgnoreCase)) { schemaPassword = DbMigrationConfig.SchemaPassword; } if (string.IsNullOrEmpty(schemaPassword)) { schemaPassword = expression.SchemaName; } using (var writer = new StringWriter()) { if (string.IsNullOrEmpty(DbMigrationConfig.DefaultTablespace) || string.IsNullOrEmpty(DbMigrationConfig.TempTablespace)) { writer.WriteLine(CreatePlainSchemaSqlTemplate, Quoter.QuoteSchemaName(expression.SchemaName), Quoter.QuoteSchemaName(schemaPassword)); } else { writer.WriteLine(CreateSchemaSqlTemplate, Quoter.QuoteSchemaName(expression.SchemaName), Quoter.QuoteSchemaName(schemaPassword), Quoter.QuoteSchemaName(DbMigrationConfig.DefaultTablespace), Quoter.QuoteSchemaName(DbMigrationConfig.TempTablespace)); } writer.WriteLine(";"); writer.WriteLine(GrantTableSpaceAccess(expression.SchemaName)); writer.WriteLine(";"); writer.WriteLine(GrantSessionAccess(expression.SchemaName)); return(writer.ToString()); }; }
public override string Generate(CreateSchemaExpression expression) { return(string.Format("CREATE SCHEMA {0};", Quoter.QuoteSchemaName(expression.SchemaName))); }
public virtual void Process(CreateSchemaExpression expression) { Process(Generator.Generate(expression)); }
//All Schema method throw by default as only Sql server 2005 and up supports them. public override string Generate(CreateSchemaExpression expression) { throw new DatabaseOperationNotSupportedException(); }
public override string Generate(CreateSchemaExpression expression) { return(String.Format(CreateSchema, Quoter.QuoteSchemaName(expression.SchemaName))); }
public override void Process(CreateSchemaExpression expression) { truncator.Truncate(expression); RegisterExpression <CreateSchemaExpression>(expression); InternalProcess(Generator.Generate(expression)); }
public abstract string Generate(CreateSchemaExpression expression);
//All Schema method throw by default as only Sql server 2005 and up supports them. public override string Generate(CreateSchemaExpression expression) { return(CompatibilityMode.HandleCompatibilty("Schemas are not supported")); }
public override void Process(CreateSchemaExpression expression) { ExtendedMigrationProcessor.Process(expression); }
public void Truncate(CreateSchemaExpression expression) { }
public CreateUserExpression(CreateSchemaExpression expression) { SchemaName = expression.SchemaName; }
public override string Generate(CreateSchemaExpression expression) { throw new NotImplementedException(); }