示例#1
0
        public async Task <DataMigrationRecord> GetDataMigrationRecordAsync()
        {
            if (_dataMigrationRecord == null)
            {
                _dataMigrationRecord = await _session.QueryAsync <DataMigrationRecord>().FirstOrDefault();

                if (_dataMigrationRecord == null)
                {
                    _dataMigrationRecord = new DataMigrationRecord();
                    _session.Save(_dataMigrationRecord);
                }
            }

            return(_dataMigrationRecord);
        }
示例#2
0
        DataMigrationRecord BuildDataMigrationRecord()
        {
            if (_schemas == null)
            {
                return(null);
            }
            var migrations = new DataMigrationRecord();

            foreach (var schema in _schemas)
            {
                migrations.Migrations.Add(new DataMigration()
                {
                    ModuleId   = schema.ModuleId,
                    Version    = schema.Version,
                    Statements = schema.Statements
                });
            }
            return(migrations);
        }
示例#3
0
        public async Task <DataMigrationResult> ApplyMigrationsAsync(DataMigrationRecord dataMigrationRecord)
        {
            var result = new DataMigrationResult();

            foreach (var migration in dataMigrationRecord.Migrations)
            {
                var success = await CommitMigrationAsync(migration);

                if (success)
                {
                    result.SuccessfulMigrations.Add(migration);
                }
                else
                {
                    result.FailedMigrations.Add(migration);
                }
            }
            result.Errors = _errors;
            return(result);
        }