Пример #1
0
        private async Task RunBeforeMigration(IDbMigration migration, DatabaseVersionModel databaseVersion)
        {
            // Check Actual DatabaseVersion against the migration version
            // Don't run unless this Migrations BeforeMigration has not been run
            if (databaseVersion.IsBeforeMigrationComplete == false)
            {
                // Before Migrate

                await migration.RunOrderedMigration(MigrationStep.Setup, _dbProvider).ConfigureAwait(false);

                if (_systemRole == SystemRole.Server)
                {
                    await migration.RunOrderedMigration(MigrationStep.ServerSetup, _dbProvider).ConfigureAwait(false);
                }
                if (_systemRole == SystemRole.Client)
                {
                    await migration.RunOrderedMigration(MigrationStep.ClientSetup, _dbProvider).ConfigureAwait(false);
                }

                // Update the database version to show the before migration has been run
                databaseVersion.IsBeforeMigrationComplete = true;
                await _dbProvider.Query <DatabaseVersionModel>()
                .Where(dbv => dbv.VersionNumber == migration.MigrationVersion)
                .Update(databaseVersion)
                .ConfigureAwait(false);
            }
        }
Пример #2
0
        private async Task RunMigration(IDbMigration migration, DatabaseVersionModel databaseVersion)
        {
            // Check Actual DatabaseVersion against the migration version
            // Don't run unless this Migrations Migration has not been run
            if (databaseVersion.IsMigrationComplete == false)
            {
                await migration.RunOrderedMigration(MigrationStep.Migrate, _dbProvider).ConfigureAwait(false);

                switch (_systemRole)
                {
                case SystemRole.Server:
                    await migration.RunOrderedMigration(MigrationStep.ServerMigrate, _dbProvider).ConfigureAwait(false);

                    break;

                case SystemRole.Client:
                    await migration.RunOrderedMigration(MigrationStep.ClientMigrate, _dbProvider).ConfigureAwait(false);

                    break;
                }

                // Update the database version to show the migration has been run
                databaseVersion.IsMigrationComplete = true;
                await _dbProvider.Query <DatabaseVersionModel>()
                .Where(dbv => dbv.VersionNumber == migration.MigrationVersion)
                .Update(databaseVersion)
                .ConfigureAwait(false);
            }
        }
Пример #3
0
        private async Task RunAfterMigrationAsync(AppCoreMigration migration, DatabaseVersionModel databaseVersion)
        {
            // Check Actual DatabaseVersion against the migration version
            // Don't run unless the MigrationVersion is 1 more than DatabaseVersion
            if (databaseVersion.IsAfterMigrationComplete == false)
            {
                await migration.RunOrderedMigrationAsync(MigrationStep.AfterMigrate, _dbProvider).ConfigureAwait(false);

                if (_systemRole == SystemRole.Server)
                {
                    await migration.RunOrderedMigrationAsync(MigrationStep.ServerAfterMigrate, _dbProvider).ConfigureAwait(false);
                }
                if (_systemRole == SystemRole.Client)
                {
                    await migration.RunOrderedMigrationAsync(MigrationStep.ClientAfterMigrate, _dbProvider).ConfigureAwait(false);
                }

                // UpdateAsync the database version to show the after migration has been run
                databaseVersion.IsAfterMigrationComplete = true;
                await _dbProvider.Query <DatabaseVersionModel>()
                .Where(dbv => dbv.VersionNumber == migration.MigrationVersion)
                .UpdateAsync(databaseVersion)
                .ConfigureAwait(false);
            }
        }
Пример #4
0
        private DatabaseVersionModel GetMigrationInformation(IMigration migration)
        {
            var databaseVersion = _dbProvider.Query <DatabaseVersionModel>()
                                  .Where(dbv => dbv.VersionNumber == migration.MigrationVersion)
                                  .OrderBy(v => v.VersionNumber, OrderDirection.Descending)
                                  .Select().FirstOrDefault();

            if (databaseVersion == null)
            {
                databaseVersion = new DatabaseVersionModel
                {
                    VersionNumber = migration.MigrationVersion,
                    MigrationDate = DateTime.UtcNow
                };
                _dbProvider.Create(databaseVersion);
            }

            return(databaseVersion);
        }
Пример #5
0
        private async Task <DatabaseVersionModel> GetMigrationInformationAsync(IDbMigration migration)
        {
            var databaseVersions = await _dbProvider.Query <DatabaseVersionModel>()
                                   .Where(dbv => dbv.VersionNumber == migration.MigrationVersion)
                                   .OrderBy(v => v.VersionNumber, OrderDirection.Descending)
                                   .Select()
                                   .ConfigureAwait(false);

            var databaseVersion = databaseVersions.FirstOrDefault();

            if (databaseVersion == null)
            {
                databaseVersion = new DatabaseVersionModel
                {
                    VersionNumber = migration.MigrationVersion,
                    MigrationDate = DateTime.UtcNow
                };
                await _dbProvider.Create(databaseVersion).ConfigureAwait(false);
            }

            return(databaseVersion);
        }
Пример #6
0
        private void RunBeforeMigration(IMigration migration, DatabaseVersionModel databaseVersion)
        {
            // Check Actual DatabaseVersion against the migration version
            // Don't run unless this Migrations BeforeMigration has not been run
            if (databaseVersion.IsBeforeMigrationComplete == false)
            {
                migration.DbProvider = _dbProvider;

                // Before Migrate
                migration.BeforeMigrate();
                if (_systemRole == SystemRole.Server)
                {
                    migration.ServerBeforeMigrate();
                }
                if (_systemRole == SystemRole.Client)
                {
                    migration.ClientBeforeMigrate();
                }

                // Update the database version to show the before migration has been run
                databaseVersion.IsBeforeMigrationComplete = true;
                _dbProvider.Query <DatabaseVersionModel>().Where(dbv => dbv.VersionNumber == migration.MigrationVersion).Update(databaseVersion);
            }
        }