Exemple #1
0
 public MigrationRunner(IMongoDatabase database, IConfigurationRoot configuration = null)
 {
     Database         = database;
     DatabaseStatus   = new DatabaseMigrationStatus(this);
     MigrationLocator = new MigrationLocator();
     _configuration   = configuration;
 }
Exemple #2
0
        public MigrationRunner(string connectionString, string databaseName, string collectionName = DEFAULT_COLLECTION_NAME)
        {
            var client = new MongoClient(connectionString);

            Database         = client.GetServer().GetDatabase(databaseName);
            DatabaseStatus   = new DatabaseMigrationStatus(this);
            MigrationLocator = new MigrationLocator();
        }
Exemple #3
0
 private MigrationRunner(MongoUrl url)
 {
     Url              = url;
     Client           = new MongoClient(url);
     Database         = Client.GetDatabase(url.DatabaseName);
     DatabaseStatus   = new DatabaseMigrationStatus(this);
     MigrationLocator = new MigrationLocator();
 }
Exemple #4
0
        public virtual void UpdateTo(MigrationVersion updateToVersion)
        {
            var currentVersion = DatabaseStatus.GetLastAppliedMigration();

            Console.WriteLine(new { Message = WhatWeAreUpdating(), currentVersion, updateToVersion, Database.DatabaseNamespace.DatabaseName });

            var migrations = MigrationLocator.GetMigrationsAfter(currentVersion)
                             .Where(m => m.Version <= updateToVersion);

            ApplyMigrations(migrations);
        }
Exemple #5
0
 public MigrationRunner(
     IMongoClient client,
     string databaseName,
     ILogger <MigrationRunner> logger = null)
 {
     _logger          = logger ?? NullLogger <MigrationRunner> .Instance;
     Client           = client;
     DatabaseName     = databaseName;
     DatabaseStatus   = new DatabaseMigrationStatus(this);
     MigrationLocator = new MigrationLocator();
 }
Exemple #6
0
        public virtual void UpdateTo(MigrationVersion updateToVersion)
        {
            var currentVersion = DatabaseStatus.GetLastAppliedMigration();

            Trace.TraceInformation("Updating migration \"{0}\" for version {1} to database \"{2}\".", currentVersion, updateToVersion, Database.Name);

            var migrations = MigrationLocator.GetMigrationsAfter(currentVersion)
                             .Where(m => m.Version <= updateToVersion);

            ApplyMigrations(migrations);
        }
        public virtual void UpdateTo(MigrationVersion updateToVersion)
        {
            var currentVersion = DatabaseStatus.GetLastAppliedMigration();
            var migrations     = MigrationLocator.GetMigrationsAfter(currentVersion).Where(m => m.Version <= updateToVersion).ToList();

            if (migrations.Count == 0)
            {
                return;
            }

            // if the migration collection didn't exist, assume it's a new db that is already up to date.
            if (currentVersion == null)
            {
                foreach (var migration in migrations)
                {
                    DatabaseStatus.MarkVersion(migration.Version);
                }

                return;
            }

            Trace.TraceInformation("Updating migration \"{0}\" for version {1} to database \"{2}\".", currentVersion, updateToVersion, Database.Name);
            ApplyMigrations(migrations);
        }
Exemple #8
0
 public virtual void UpdateToLatest()
 {
     Console.WriteLine(WhatWeAreUpdating() + " to latest...");
     UpdateTo(MigrationLocator.LatestVersion());
 }
Exemple #9
0
 public MigrationRunner(IMongoDatabase database)
 {
     Database         = database;
     DatabaseStatus   = new DatabaseMigrationStatus(this);
     MigrationLocator = new MigrationLocator();
 }
Exemple #10
0
 public virtual Task UpdateToLatestAsync(
     CancellationToken cancellationToken = default(CancellationToken))
 {
     _logger.LogInformation(WhatWeAreUpdating() + " to latest...");
     return(UpdateToAsync(MigrationLocator.LatestVersion(), cancellationToken));
 }
Exemple #11
0
 public virtual void UpdateToLatest()
 {
     Trace.TraceInformation("Updating {0} to latest...", Database.Name);
     UpdateTo(MigrationLocator.LatestVersion());
 }