/// <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));
        }
Esempio n. 4
0
 /// <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;
 }
Esempio n. 5
0
 /// <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;
 }