コード例 #1
0
        /// <summary>
        /// Проверяет установлена ли последняя миграция
        /// </summary>
        /// <returns>Результат проверки миграций</returns>
        public string CheckLastMigration()
        {
            var migrator = new DbMigrator(_configuration);

            var targetMigration = migrator.GetLocalMigrations().ToList();

            var targetMigrationDb = migrator.GetDatabaseMigrations(null, false).ToList();

            return(migrator.CheckMigrations(targetMigration.LastOrDefault(), targetMigrationDb.LastOrDefault(), false));
        }
コード例 #2
0
        /// <summary>
        /// Проверяет наличие миграции в БД по ее версии
        /// </summary>
        /// <param name="version">Версия миграции</param>
        /// <returns>Результат проверки миграций</returns>
        public string CheckByVersion(string version)
        {
            var migrator = new DbMigrator(_configuration);

            var targetMigration =
                migrator.GetLocalMigrations()
                .Where(s => s.ToLowerInvariant().StartsWith(version.ToLowerInvariant()))
                .ToList();

            if (targetMigration.Count == 0)
            {
                throw new MigrationsException(string.Format(Constants.MigrationNotFound, version));
            }

            var targetMigrationDb = migrator.GetDatabaseMigrations(version, true).ToList();

            if (targetMigrationDb.Count == 0)
            {
                throw new MigrationsException(string.Format(Constants.MigrationNotFound, version));
            }

            return(migrator.CheckMigrations(targetMigration.Last(), targetMigrationDb.Last(), true));
        }
コード例 #3
0
        /// <summary>
        /// Ищет конкретную миграцию в БД по имени миграции
        /// </summary>
        /// <param name="migration">Название миграции</param>
        /// <returns>Результат проверки миграций</returns>
        public string CheckByMigrationName(string migration)
        {
            var migrator = new DbMigrator(_configuration);

            var targetMigration =
                migrator.GetLocalMigrations()
                .Where(s => s.ToLowerInvariant().Contains(migration.ToLowerInvariant()))
                .ToList();

            if (targetMigration.Count > 1)
            {
                throw new MigrationsException(string.Format(Constants.NotUniqMigration,
                                                            Environment.NewLine,
                                                            targetMigration.Join(separator: Environment.NewLine)));
            }

            if (targetMigration.Count == 0)
            {
                throw new MigrationsException(string.Format(Constants.MigrationNotFound, migration));
            }

            var targetMigrationDb = migrator.GetDatabaseMigrations(migration, false).ToList();

            if (targetMigrationDb.Count > 1)
            {
                throw new MigrationsException(string.Format(Constants.NotUniqMigration,
                                                            Environment.NewLine,
                                                            targetMigrationDb.Join(separator: Environment.NewLine)));
            }

            if (targetMigrationDb.Count == 0)
            {
                throw new MigrationsException(string.Format(Constants.MigrationNotFound, migration));
            }

            return(migrator.CheckMigrations(targetMigration.First(), targetMigrationDb.First(), false));
        }