/// <summary> /// Executes an Up for all found unapplied migrations /// </summary> /// <param name="assembly">Assembly to find migrations</param> /// <param name="migrationProcessType">Type of migration process</param> public virtual void ApplyUpMigrations(Assembly assembly, MigrationProcessType migrationProcessType = MigrationProcessType.Installation) { if (assembly is null) { throw new ArgumentNullException(nameof(assembly)); } foreach (var migrationInfo in GetUpMigrations(assembly, migrationProcessType)) { _migrationRunner.Up(migrationInfo.Migration); #if DEBUG if (!string.IsNullOrEmpty(migrationInfo.Description) && migrationInfo.Description.StartsWith(string.Format(NopMigrationDefaults.UpdateMigrationDescriptionPrefix, NopVersion.FULL_VERSION))) { continue; } #endif _versionLoader.Value .UpdateVersionInfo(migrationInfo.Version, migrationInfo.Description ?? migrationInfo.Migration.GetType().Name); } }
/// <summary> /// Executes an Up for all found unapplied migrations /// </summary> /// <param name="assembly">Assembly to find migrations</param> /// <param name="migrationProcessType">Type of migration process</param> public void ApplyUpMigrations(Assembly assembly, MigrationProcessType migrationProcessType = MigrationProcessType.Installation) { _migrationRunner.MigrateUp(637200411689037680); }
/// <summary> /// Returns the instances for found types implementing FluentMigrator.IMigration which ready to Down process /// </summary> /// <param name="assembly">Assembly to find migrations</param> /// <param name="migrationProcessType">Type of migration process; pass MigrationProcessType.NoMatter to load all migrations</param> /// <returns>The instances for found types implementing FluentMigrator.IMigration</returns> protected virtual IEnumerable <IMigrationInfo> GetDownMigrations(Assembly assembly, MigrationProcessType migrationProcessType = MigrationProcessType.NoMatter) { var migrations = _filteringMigrationSource .GetMigrations(t => { var migrationAttribute = t.GetCustomAttribute <NopMigrationAttribute>(); if (migrationAttribute is null || !_versionLoader.Value.VersionInfo.HasAppliedMigration(migrationAttribute.Version)) { return(false); } if (migrationAttribute.TargetMigrationProcess != MigrationProcessType.NoMatter && migrationProcessType != MigrationProcessType.NoMatter && migrationProcessType != migrationAttribute.TargetMigrationProcess) { return(false); } return(assembly == null || t.Assembly == assembly); }) ?? Enumerable.Empty <IMigration>(); return(migrations .Select(m => _migrationRunnerConventions.GetMigrationInfoForMigration(m)) .OrderBy(migration => migration.Version)); }
/// <summary> /// Initializes a new instance of the NopMigrationAttribute class /// </summary> /// <param name="dateTime">The migration date time string to convert on version</param> /// <param name="nopVersion">nopCommerce full version</param> /// <param name="migrationType">The migration type</param> /// <param name="targetMigrationProcess">The target migration process</param> public NopMigrationAttribute(string dateTime, string nopVersion, UpdateMigrationType migrationType, MigrationProcessType targetMigrationProcess = MigrationProcessType.NoMatter) : base(GetVersion(dateTime, migrationType), GetDescription(nopVersion, migrationType)) { TargetMigrationProcess = targetMigrationProcess; }
/// <summary> /// Initializes a new instance of the NopMigrationAttribute class /// </summary> /// <param name="dateTime">The migration date time string to convert on version</param> /// <param name="description">The migration description</param> /// <param name="targetMigrationProcess">The target migration process</param> public NopMigrationAttribute(string dateTime, string description, MigrationProcessType targetMigrationProcess = MigrationProcessType.NoMatter) : base(GetVersion(dateTime), description) { TargetMigrationProcess = targetMigrationProcess; }