/// <summary>
        /// Replace elements by conventions<br/>
        /// Replace {SchemaName} with <paramref name="schemaName"/> or <see cref="IDbConfigSchemaTargets.Schema"/><br/>
        /// Replace {SchemaPrefixId} with <paramref name="schemaPrefixId"/> or  <see cref="IDbConfigSchemaTargets.GetSchemaPrefixId()"/><br/>
        /// Replace {SchemaPrefixUniqueId} with <paramref name="schemaPrefixUniqueId"/> or  <see cref="IDbMigrationConfig.GetSchemaPrefixUniqueId()"/><br/>
        /// Replace {MigrationName} with <paramref name="migrationName"/> or  <see cref="IDbMigrationConfig.GetMigrationName()"/><br/>
        /// Replace {SchemaPassword} with <paramref name="schemaPassword"/> or <see cref="IDbMigrationConfig.SchemaPassword"/> or <see cref="IDbConfigCredentials.Password"/> <br/>
        /// Replace {User} with <paramref name="user"/> or <see cref="IDbConfigCredentials.User"/><br/>
        /// Replace {Password} with <paramref name="password"/> or <see cref="IDbConfigCredentials.Password"/> or <see cref="IDbConfigCredentials.User"/> <br/>
        /// </summary>
        /// <param name="migrationConfig"></param>
        /// <param name="sql"></param>
        /// <param name="schemaName"></param>
        /// <param name="schemaPrefixId"></param>
        /// <param name="schemaPrefixUniqueId"></param>
        /// <param name="migrationName"></param>
        /// <param name="schemaPassword"></param>
        /// <param name="user"></param>
        /// <param name="password"></param>
        /// <returns></returns>
        public static string PrepareSql(this IDbMigrationConfig migrationConfig, string sql, string schemaName = null, string schemaPrefixId = null, string schemaPrefixUniqueId = null,
                                        string migrationName = null, string schemaPassword = null, string user = null, string password = null)
        {
            if (sql == null)
            {
                return(null);
            }

            schemaName           = schemaName ?? migrationConfig.Schema;
            schemaPassword       = schemaPassword ?? migrationConfig.SchemaPassword.WithDefault(schemaName).WithDefault(migrationConfig.GetDbConfig()?.Password);
            schemaPrefixId       = schemaPrefixId ?? migrationConfig.GetSchemaPrefixId();
            schemaPrefixUniqueId = schemaPrefixUniqueId ?? migrationConfig.GetSchemaPrefixUniqueId();
            migrationName        = migrationName ?? migrationConfig.GetMigrationName();

            user     = user ?? migrationConfig?.GetDbConfig().User.WithDefault(migrationName);
            password = password ?? migrationConfig?.GetDbConfig().Password;

            return(sql
                   .ReplaceIgnoreCase("{MigrationName}", migrationName)
                   .ReplaceIgnoreCase("{User}", user)
                   .ReplaceIgnoreCase("{Password}", password)
                   .ReplaceIgnoreCase("{SchemaName}", schemaName?.ToUpper())
                   .ReplaceIgnoreCase("{SchemaPassword}", schemaPassword?.ToUpper())
                   .ReplaceIgnoreCase("{SchemaPrefixId}", schemaPrefixId)
                   .ReplaceIgnoreCase("{SchemaPrefixUniqueId}", schemaPrefixUniqueId));
        }
示例#2
0
        /// <summary>
        /// Initialize MigrationCallingName and MigrationAssembly from <paramref name="migrationConfig"/>
        /// </summary>
        /// <param name="migrationConfig"></param>
        public MigrationMetadata InitMetadata(IDbMigrationConfig migrationConfig)
        {
            MigrationCallingNameConfigField = migrationConfig?.GetMigrationName();
            if (MigrationCallingNameConfigField.IsNotEmpty())
            {
                MigrationName = MigrationCallingNameConfigField;
            }

            return(this);
        }