Example #1
0
        private static SimpleMigrator CreateMigrator(DbConnection connection, Settings settings)
        {
            var migrationAssembly = GetMigrationAssembly(settings.MigrationAssemblyPath);

            var provider = new MssqlDatabaseProvider(connection)
            {
                SchemaName = settings.VersionTableSchema
            };
            var migrator = new SimpleMigrator(migrationAssembly, provider);

            migrator.Load();
            return(migrator);
        }
Example #2
0
        public async Task MigrateToLatestVersionAsync()
        {
            using (var connection = new SqlConnection(_sqlConnectionString))
            {
                await connection.OpenAsync();

                var migrationsAssembly = typeof(DatabaseManager).Assembly;
                var databaseProvider   = new MssqlDatabaseProvider(connection);
                var migrator           = new SimpleMigrator(migrationsAssembly, databaseProvider);
                migrator.Load();
                migrator.MigrateToLatest();
            }
        }
Example #3
0
        private void DatabaseMigration()
        {
            var migrationsAssembly = typeof(CreateJobsTable001).Assembly;

            using (var connection = new SqlConnection(Configuration.GetConnectionString("Default")))
            {
                var databaseProvider = new MssqlDatabaseProvider(connection);
                var migrator         = new SimpleMigrator(migrationsAssembly, databaseProvider);

                migrator.Load();
                migrator.MigrateToLatest();
            }
        }
        public IActionResult Migrate()
        {
            var migrationsAssembly = typeof(Migrations.Program).Assembly;

            using (var db = new SqlConnection(_configuration.GetValue <string>("CONNECTION_STRING")))
            {
                var databaseProvider = new MssqlDatabaseProvider(db);
                var migrator         = new SimpleMigrator(migrationsAssembly, databaseProvider);

                migrator.Load();
                migrator.MigrateToLatest();
            }

            return(NoContent());
        }
Example #5
0
        static void Main(string[] args)
        {
            var connectionString = Environment.GetEnvironmentVariable("CONNECTION_STRING");

            var migrationsAssembly = typeof(Program).Assembly;

            using (var db = new SqlConnection(connectionString))
            {
                var databaseProvider = new MssqlDatabaseProvider(db);
                var migrator         = new SimpleMigrator(migrationsAssembly, databaseProvider);

                var consoleRunner = new ConsoleRunner(migrator);
                consoleRunner.Run(args);
            }
        }
Example #6
0
        public void ApplyMigrations()
        {
            var config = LoadConfiguration();

            var connString = config.GetConnectionString("Kiukie");

            LoadServices(connString);

            using (var connection = new SqlConnection(connString))
            {
                var databaseProvider = new MssqlDatabaseProvider(connection);
                var migrator         = new SimpleMigrator(typeof(TestFixtureContext).Assembly, databaseProvider);
                migrator.Load();
                migrator.MigrateToLatest();
            }
        }
Example #7
0
        static void Main(string[] args)
        {
            var migrationsAssembly = typeof(Program).Assembly;
            var connectionString   = new SqlConnectionStringBuilder
            {
                DataSource         = ".",
                InitialCatalog     = "SMP",
                IntegratedSecurity = true
            }.ConnectionString;

            using var connection = new SqlConnection(connectionString);
            var databaseProvider = new MssqlDatabaseProvider(connection);
            var migrator         = new SimpleMigrator(migrationsAssembly, databaseProvider);

            migrator.Load();
            migrator.MigrateToLatest();
        }
Example #8
0
        /// <summary>
        /// Run migrator
        /// </summary>
        /// <param name="args">
        ///     up: Migrate to the latest version (default)
        ///     to <n>: Migrate up/down to the version n (0 for reset)
        ///     reapply: Re-apply the current migration
        ///     list: List all available migrations
        ///     baseline <n>: Move the database to version n, without apply migrations
        /// </param>
        static void Main(string[] args)
        {
            var builder = new ConfigurationBuilder()
                          .SetBasePath(Directory.GetCurrentDirectory())
                          .AddJsonFile("appsettings.json")
                          .Build();

            string connectionString = builder.GetConnectionString("DefaultConnection");

            var migrationsAssembly = typeof(Program).Assembly;

            using (var db = new SqlConnection(connectionString))
            {
                var databaseProvider = new MssqlDatabaseProvider(db);
                var migrator         = new SimpleMigrator(migrationsAssembly, databaseProvider);
                migrator.Load();

                var consoleRunner = new ConsoleRunner(migrator);
                consoleRunner.Run(args);
            }
        }
        public async Task <ISimpleMigrator> CreateAsync(MigrationOptions options)
        {
            var projectInfo = await _projectInfoDiscoverer.DiscoverAsync(
                !options.NoBuild,
                options.Configuration,
                options.Framework,
                options.Project,
                options.Assembly,
                options.ConnectionString,
                options.ConnectionStringName);

            using (var loader = new DependencyAwareAssemblyLoader(projectInfo.ProjectAssembly))
            {
                var migrationProvider = new AssemblyMigrationProvider(projectInfo.ProjectAssembly);
                var connection        = new SqlConnection(projectInfo.ConnectionString);
                var dbProvider        = new MssqlDatabaseProvider(connection)
                {
                    SchemaName = "dbo"
                };
                var migrator = new SimpleMigrator(migrationProvider, dbProvider, _migrationLogger);
                migrator.Load();
                return(migrator);
            }
        }
        public static void Main(string[] args)
        {
            var connectionString    = @"Data Source=LT-17-623\SQL17;Initial Catalog=ASPNetCoreTest;Persist security info=True;Integrated Security=SSPI";
            var migrateCommandText  = "migrate";
            var rollBackCommandText = "rollback";
            var versionCommand      = "-v";

            Console.WriteLine("MigratonRunner commands");
            Console.WriteLine();
            Console.WriteLine("migrate");
            Console.WriteLine("migrate -v <VERSION>");
            Console.WriteLine("rollback");
            Console.WriteLine("rollback -v <VERSION>");
            Console.WriteLine();
            Console.WriteLine("ENTER COMMAND");
            Console.WriteLine();

            using (var connection = new SqlConnection(connectionString))
            {
                var databaseProvider = new MssqlDatabaseProvider(connection);
                var migrator         = new SimpleMigrator(Assembly.Load(new AssemblyName("Migrations.Sql")), databaseProvider);
                migrator.Load();

                var newMigrations = migrator.Migrations.Where(x => x.Version > migrator.CurrentMigration.Version);

                if (newMigrations.Any())
                {
                    Console.WriteLine("There are new migrations");
                    Console.ForegroundColor = ConsoleColor.Green;

                    foreach (var migration in newMigrations.OrderBy(x => x.Version))
                    {
                        Console.WriteLine(migration.Version.ToString() + "-" + migration.Description);
                    }

                    Console.ResetColor();
                }
                else
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("There are no new migrations");
                    Console.ResetColor();
                }
            }


            var commandText = Console.ReadLine();

            if (commandText.ToLower().Contains(migrateCommandText))
            {
                if (commandText.ToLower().Contains(versionCommand))
                {
                    string version = commandText.Substring(commandText.IndexOf(versionCommand) + versionCommand.Length + 1);
                    long   versionLong;
                    var    castedToLong = long.TryParse(version, out versionLong);

                    if (castedToLong)
                    {
                        using (var connection = new SqlConnection(connectionString))
                        {
                            var databaseProvider = new MssqlDatabaseProvider(connection);
                            var migrator         = new SimpleMigrator(Assembly.Load(new AssemblyName("Migrations.Sql")), databaseProvider);
                            migrator.Load();
                            migrator.MigrateTo(versionLong);
                        }
                        Console.WriteLine("migrate database to the version " + version + " !");
                        Console.ReadKey();
                    }
                }
                else
                {
                    using (var connection = new SqlConnection(connectionString))
                    {
                        var databaseProvider = new MssqlDatabaseProvider(connection);
                        var migrator         = new SimpleMigrator(Assembly.Load(new AssemblyName("Migrations.Sql")), databaseProvider);
                        migrator.Load();
                        migrator.MigrateToLatest();
                    }
                    Console.WriteLine("migrate database to latest version");
                    Console.ReadKey();
                }
            }
            else if (commandText.ToLower().Contains(rollBackCommandText))
            {
                if (commandText.ToLower().Contains(versionCommand))
                {
                    string version = commandText.Substring(commandText.IndexOf(versionCommand) + versionCommand.Length + 1);
                    long   versionLong;
                    var    castedToLong = long.TryParse(version, out versionLong);

                    if (castedToLong)
                    {
                        using (var connection = new SqlConnection(connectionString))
                        {
                            var databaseProvider = new MssqlDatabaseProvider(connection);
                            var migrator         = new SimpleMigrator(Assembly.Load(new AssemblyName("Migrations.Sql")), databaseProvider);
                            migrator.Load();
                            migrator.MigrateTo(versionLong);
                        }
                        Console.WriteLine("rollback database to the version " + version + " !");
                        Console.ReadKey();
                    }
                }
                else
                {
                    Console.WriteLine("Are you sure? y/n");
                    var rollbackResp = Console.ReadLine();
                    if (rollbackResp.Contains("y"))
                    {
                        using (var connection = new SqlConnection(connectionString))
                        {
                            var databaseProvider = new MssqlDatabaseProvider(connection);
                            var migrator         = new SimpleMigrator(Assembly.Load(new AssemblyName("Migrations.Sql")), databaseProvider);
                            migrator.Load();
                            migrator.MigrateTo(0);
                        }
                        Console.WriteLine("rollback database!");
                        Console.ReadKey();
                    }
                    else
                    {
                        Console.WriteLine("rollback canceled!");
                        Console.ReadKey();
                    }
                }
            }
            else
            {
                Console.WriteLine("Command not found, please write migrate or rollback");
                Console.ReadKey();
            }
        }