示例#1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Applying migrations for assembly version {0}.", typeof(IIdentifiable).Assembly.GetName().Version);

            ProcessArguments(args);

            if (string.IsNullOrWhiteSpace(ConnectionString))
            {
                throw new ArgumentNullException("No valid configuration provided (use /configuration:...)");
            }

            var migrator = new Migrator.Migrator(Provider, ConnectionString, typeof(Program).Assembly);

            migrator.DryRun = DryRun;

            if (IsVersionSpecified)
            {
                migrator.MigrateTo(Version);
            }
            else
            {
                migrator.MigrateToLastVersion();
            }

            if (Pause)
            {
                Console.WriteLine("Press any key to continue...");
                Console.ReadKey();
            }
        }
示例#2
0
        public void MigrateToLatest()
        {
            var migrator = new Migrator.Migrator(_settings.DatabaseProvider, _settings.ConnectionString,
                                                 typeof(M000_VersionZero).Assembly);

            migrator.MigrateToLastVersion();
        }
示例#3
0
        private Migrator.Migrator GetMigrator()
        {
            var asm = Assembly.LoadFrom(_migrationsAssemblyPath);

            var migrator = new Migrator.Migrator(_provider, _connectionString, asm);
            return migrator;
        }
        private void Migrate()
        {
            var databaseType     = Parameters.Profile.MigrateDatabaseSettings.DatabaseType;
            var connectionString = Parameters.Profile.MigrateDatabaseSettings.ConnectionString;
            var migrationFile    = GetMigrationFile();

            if (migrationFile == null)
            {
                Status.AppendDetailsLine("Could not find migration file " + Parameters.Profile.MigrateDatabaseSettings.MigrationAssemblyName);
                Status.Status     = DeploymentStepStatus.Fail;
                Status.CanProceed = false;
                return;
            }

            var migrationAssembly = Assembly.LoadFrom(migrationFile.FullName);

            var migratorLogger = new Migrator.Framework.Loggers.Logger(true, new MigratorToDeployStatusAdapter(Status));
            var migrator       = new Migrator.Migrator(databaseType, connectionString, migrationAssembly, true, migratorLogger);

            migrator.MigrateToLastVersion();

            AppendMigrationInfo(migrator.AppliedMigrations);


            Status.Status = DeploymentStepStatus.Ok;
        }
示例#5
0
        private Migrator.Migrator GetMigrator()
        {
            var asm = Assembly.GetCallingAssembly();

            Migrator.Migrator migrator = new Migrator.Migrator("SqlServer", ConfigurationManager.AppSettings["conString"], asm, false);

            return migrator;
        }
        public static void Setup(ConnectionStringSettings connectionStringSettings)
        {
            if (connectionStringSettings == null) throw new ArgumentNullException("connectionStringSettings");

            var assembly = typeof(BookMigration).Assembly;
            var migrator = new MigratorClass(connectionStringSettings.ProviderName, connectionStringSettings.ConnectionString, assembly);
            migrator.MigrateToLastVersion();
        }
示例#7
0
        private Migrator.Migrator GetMigrator()
        {
            var asm = Assembly.LoadFrom(_migrationsAssemblyPath);

            var migrator = new Migrator.Migrator(_provider, _connectionString, asm);

            return(migrator);
        }
示例#8
0
        public void Up(Assembly target)
        {
            string dataPath = HdknConfig.GetPath("Paths.Data");
            string connectionString = HdknConfig.ConnectionString.Replace("$Paths.Data$", dataPath);

            var m = new Migrator.Migrator(new SQLiteTransformationProvider(new SQLiteDialect(), connectionString), target, false, new MigrationLogger());
            m.MigrateToLastVersion();
        }
示例#9
0
        private Migrator.Migrator GetMigrator()
        {
            Assembly asm = Assembly.LoadFrom(_migrationsAssembly);

            Migrator.Migrator migrator = new Migrator.Migrator(_provider, _connectionString, asm, _trace);
            migrator.args   = args;
            migrator.DryRun = _dryrun;
            return(migrator);
        }
示例#10
0
        public bool hasDetectedDatabaseWithNewerVersion()
        {
            Migrator.Migrator mig = GetMigrator();
            if (mig.AppliedMigrations.Count > mig.MigrationsTypes.Count)
            {
                return(true);
            }

            return(false);
        }
示例#11
0
        public bool hasDetectedNewMigrations()
        {
            Migrator.Migrator mig = GetMigrator();
            if (mig.AppliedMigrations.Count < mig.MigrationsTypes.Count)
            {
                return(true);
            }

            return(false);
        }
示例#12
0
        public void MigrateToLastRevision()
        {
            Migrator.Migrator mig = GetMigrator();

            if (mig.AppliedMigrations.Count == 0 &&
                databaseContainsProductionData())
            {
                CreateInitialSchema.pretendMigrationHasRunForProductionDatabasesOfPreviousVersion = true;
            }

            mig.MigrateToLastVersion();
        }
 public void SetupDb(Assembly migrationAssembly = null)
 {
     SqlCeDbHelper.CreateDatabaseFile(DatabaseFilename);
     if (migrationAssembly == null)
     {
         new SchemaExport(Config.BuildConfiguration()).Execute(true, true, false);
     }
     else
     {
         var migrator = new Migrator.Migrator("SqlServerCE", "Data Source=" + DatabaseFilename, migrationAssembly, true);
         migrator.MigrateToLastVersion();
     }
 }
示例#14
0
 public void RunMigration(Migrator.Migrator mig)
 {
     if (mig.DryRun)
     {
         mig.Logger.Log("********** Dry run! Not actually applying changes. **********", new object[0]);
     }
     if (this.To == -1L)
     {
         mig.MigrateToLastVersion();
     }
     else
     {
         mig.MigrateTo(this.To);
     }
 }
        public static void Run(string connetionString)
        {
            logger.Info("Preparing to run database migration");

            VerifyConnectionString(connetionString);

            try
            {
                var migrator = new Migrator.Migrator("sqlserver", connetionString, Assembly.GetAssembly(typeof(MigrationsHelper)), true);
                migrator.MigrateToLastVersion();
                logger.Info("Database migration completed");
            }
            catch (Exception e)
            {
                logger.FatalException("An error has occurred while migrating database", e);
            }
        }
示例#16
0
        public static void Run(string connetionString)
        {
            logger.Info("Preparing to run database migration");

            VerifyConnectionString(connetionString);

            try
            {
                var migrator = new Migrator.Migrator("sqlserver", connetionString, Assembly.GetAssembly(typeof(MigrationsHelper)), true, new MigrationLogger());
                migrator.MigrateToLastVersion();
                logger.Info("Database migration completed");
            }
            catch (Exception e)
            {
                logger.FatalException("An error has occurred while migrating database", e);
            }
        }
示例#17
0
        /// <summary>
        /// List migrations.
        /// </summary>
        public void List()
        {
            CheckArguments();

            Migrator.Migrator mig = GetMigrator();
            List <long>       appliedMigrations = mig.AppliedMigrations;

            Console.WriteLine("Available migrations:");
            foreach (Type t in mig.MigrationsTypes)
            {
                long v = Migrator.MigrationLoader.GetMigrationVersion(t);
                Console.WriteLine("{0} {1} {2}",
                                  appliedMigrations.Contains(v) ? "=>" : "  ",
                                  v.ToString().PadLeft(3),
                                  StringUtils.ToHumanName(t.Name)
                                  );
            }
        }
示例#18
0
        /// <summary>
        /// Runs the migrations.
        /// </summary>
        public void Migrate()
        {
            CheckArguments();

            Migrator.Migrator mig = GetMigrator();
            if (mig.DryRun)
            {
                mig.Logger.Log("********** Dry run! Not actually applying changes. **********");
            }

            if (_migrateTo == -1)
            {
                mig.MigrateToLastVersion();
            }
            else
            {
                mig.MigrateTo(_migrateTo);
            }
        }
示例#19
0
        private void ApplyMigrations()
        {
            var factory = new PostgreSQLProviderFactory();
            var hash    = new HashSet <string>();

            foreach (var plugin in Context.GetAllPlugins())
            {
                var asm = plugin.GetType().GetTypeInfo().Assembly;

                if (hash.Contains(asm.FullName))
                {
                    continue;
                }

                using (var migrator = new Migrator.Migrator(factory.CreateProvider(cstring, Logger), asm, Logger))
                {
                    migrator.Migrate();
                }

                hash.Add(asm.FullName);
            }
        }
示例#20
0
        public static void Run(string connetionString, bool trace)
        {
            if (_migrated.ContainsKey(connetionString))
            {
                return;
            }
            _migrated.Add(connetionString, string.Empty);

            EnsureDatabase(connetionString);

            Logger.Trace("Preparing to run database migration");

            try
            {
                Migrator.Migrator migrator;
                if (trace)
                {
                    migrator = new Migrator.Migrator("sqlserverce", connetionString, Assembly.GetAssembly(typeof(MigrationsHelper)), true, new MigrationLogger());
                }
                else
                {
                    migrator = new Migrator.Migrator("sqlserverce", connetionString, Assembly.GetAssembly(typeof(MigrationsHelper)));
                }



                migrator.MigrateToLastVersion();

                //ForceSubSonicMigration(Connection.CreateSimpleRepository(connetionString));

                Logger.Info("Database migration completed");
            }
            catch (Exception e)
            {
                Logger.FatalException("An error has occurred while migrating database", e);
            }
        }
示例#21
0
        protected void ExecuteCore(Assembly asm)
        {
            SqlServerAdministrator   = new SqlServerAdministrator(Settings);
            AmbientSettings.Settings = Settings;

            EnsureDatabaseExists();

            Logger.Log("Running migrations with connection string {0}", new object[] { Settings.DefaultConnectionString });
            var migrator = new Migrator.Migrator(this.Provider, Settings.DefaultConnectionString, asm,
                                                 Trace, Logger)
            {
                DryRun = this.DryRun
            };

            using (var logStream = new MemoryStream())
                using (var writer = new StreamWriter(logStream))
                {
                    migrator.Logger = new SqlScriptFileLogger(migrator.Logger, writer);
                    this.RunMigration(migrator);

                    var logOutputStream = new MemoryStream(logStream.ToArray());
                    Logger.Log(GetStringFromStream(logOutputStream));
                }
        }
示例#22
0
        private Migrator.Migrator GetMigrator()
        {
            Assembly asm = Assembly.LoadFrom(_migrationsAssembly);

            Migrator.Migrator migrator = new Migrator.Migrator(_provider, _connectionString, asm, _trace);
            migrator.args = args;
            migrator.DryRun = _dryrun;
            return migrator;
        }
 public MovieBaseMigrator(string connectionString)
 {
     _migrator = new Migrator.Migrator("mysql", connectionString, GetType().Assembly);
 }
 public static void MigrateToLastVersion(string provider, string connectionString)
 {
     Migrator.Migrator migrator = GetMigrator(provider, connectionString);
     migrator.MigrateToLastVersion();
 }
示例#25
0
        public void Execute(Assembly asm)
        {
            Settings = new XmlSettingsParser(asm);
            SqlServerAdministrator = new SqlServerAdministrator(Settings);

            EnsureDatabaseExists();

            Logger.Log("Running migrations with connection string {0}", new object[] { Settings.DefaultConnectionString });
            var migrator = new Migrator.Migrator(this.Provider, Settings.DefaultConnectionString, asm,
                                                 Trace, Logger) { DryRun = this.DryRun };

            MemoryStream logOutputStream = new MemoryStream();

            using (MemoryStream logStream = new MemoryStream())
            using (StreamWriter writer = new StreamWriter(logStream))
            {
                migrator.Logger = new SqlScriptFileLogger(migrator.Logger, writer);
                this.RunMigration(migrator);

                logOutputStream = new MemoryStream(logStream.ToArray());
                Logger.Log(GetStringFromStream(logOutputStream));
            }
        }
        private void Migrate()
        {
            var databaseType = Parameters.Profile.MigrateDatabaseSettings.DatabaseType;
            var connectionString = Parameters.Profile.MigrateDatabaseSettings.ConnectionString;
            var migrationFile = GetMigrationFile();
            if (migrationFile == null)
            {
                Status.AppendDetailsLine("Could not find migration file " + Parameters.Profile.MigrateDatabaseSettings.MigrationAssemblyName);
                Status.Status = DeploymentStepStatus.Fail;
                Status.CanProceed = false;
                return;
            }

            var migrationAssembly = Assembly.LoadFrom(migrationFile.FullName);

            var migratorLogger = new Migrator.Framework.Loggers.Logger(true, new MigratorToDeployStatusAdapter(Status));
            var migrator = new Migrator.Migrator(databaseType, connectionString, migrationAssembly,true, migratorLogger);
            migrator.MigrateToLastVersion();

            AppendMigrationInfo(migrator.AppliedMigrations);

            Status.Status = DeploymentStepStatus.Ok;
        }
 public void SetupDb(Assembly migrationAssembly = null)
 {
     SqlCeDbHelper.CreateDatabaseFile(DatabaseFilename);
     if (migrationAssembly == null)
     {
         new SchemaExport(Config.BuildConfiguration()).Execute(true, true, false);
     }
     else
     {
         var migrator = new Migrator.Migrator("SqlServerCE", "Data Source=" + DatabaseFilename, migrationAssembly, true);
         migrator.MigrateToLastVersion();
     }
 }
示例#28
0
 public void MigrateToRevision(int revision)
 {
     Migrator.Migrator mig = GetMigrator();
     mig.MigrateTo(revision);
 }
示例#29
0
 private void Migrate()
 {
     CheckArguments();
     Migrator.Migrator mig = GetMigrator();
     mig.MigrateToLastVersion();
 }
示例#30
0
 public void MigrateToLatest()
 {
     var migrator = new Migrator.Migrator(_settings.DatabaseProvider, _settings.ConnectionString,
                                          typeof (M000_VersionZero).Assembly);
     migrator.MigrateToLastVersion();
 }