Example #1
0
        public static void Initialize(DatabaseConfig config)
        {
            s_connectionString = $"SslMode=none;Server={config.Host};Port={config.Port};Database={config.Database};Uid={config.Username};Pwd={config.Password};Pooling=true;";
            OrmConfiguration.DefaultDialect = SqlDialect.MySql;

            using (var con = Open())
            {
                if (con.QueryFirstOrDefault($"SHOW DATABASES LIKE \"{config.Database}\"") == null)
                {
                    throw new DatabaseNotFoundException(config.Database);
                }

                var databaseProvider = new MysqlDatabaseProvider(con)
                {
                    TableName = "__version"
                };
                var assemblyProvider = new AssemblyMigrationProvider(typeof(Base).Assembly, typeof(Base).Namespace);
                var migrator         = new SimpleMigrator(assemblyProvider, databaseProvider);
                migrator.Load();
                if (migrator.CurrentMigration.Version != migrator.LatestMigration.Version)
                {
                    if (config.RunMigration)
                    {
                        migrator.MigrateToLatest();
                    }
                    else
                    {
                        throw new DatabaseVersionMismatchException(migrator.CurrentMigration.Version, migrator.LatestMigration.Version);
                    }
                }
            }
        }
Example #2
0
        /// <summary>
        /// Inits Event Store
        /// </summary>
        public Exercise09Projections()
        {
            databaseConnection = PostgresDbConnectionProvider.GetFreshDbConnection();

            var databaseProvider =
                new PostgresqlDatabaseProvider(databaseConnection)
            {
                SchemaName = typeof(Exercise09Projections).Name
            };

            var migrationsAssembly = typeof(Exercise09Projections).Assembly;
            var migrator           = new SimpleMigrator(migrationsAssembly, databaseProvider);

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

            // Create Event Store
            eventStore = new EventStore(databaseConnection);

            eventStore.AddProjection(new UserDashboardProjection(databaseConnection));

            // Initialize Event Store
            eventStore.Init();

            userRepository  = new Repository <User>(eventStore);
            orderRepository = new Repository <Order>(eventStore);
        }
        /// <summary>
        /// Inits Event Store
        /// </summary>
        public Exercise08Snapshots()
        {
            databaseConnection = PostgresDbConnectionProvider.GetFreshDbConnection();

            var databaseProvider =
                new PostgresqlDatabaseProvider(databaseConnection)
            {
                SchemaName = typeof(Exercise08Snapshots).Name
            };

            var migrationsAssembly = typeof(Exercise08Snapshots).Assembly;
            var migrator           = new SimpleMigrator(migrationsAssembly, databaseProvider);

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

            // Create Event Store
            eventStore = new EventStore(databaseConnection);

            var userSnapshot = new SnapshotToTable <User>(
                databaseConnection,
                @"TODO write upsert here");

            eventStore.AddSnapshot(userSnapshot);

            // Initialize Event Store
            eventStore.Init();

            repository = new Repository <User>(eventStore);
        }
        /// <summary>
        /// Inits Event Store
        /// </summary>
        public Exercise08Snapshots()
        {
            databaseConnection = PostgresDbConnectionProvider.GetFreshDbConnection();

            var databaseProvider =
                new PostgresqlDatabaseProvider(databaseConnection)
            {
                SchemaName = typeof(Exercise08Snapshots).Name
            };

            var migrationsAssembly = typeof(Exercise08Snapshots).Assembly;
            var migrator           = new SimpleMigrator(migrationsAssembly, databaseProvider);

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

            // Create Event Store
            eventStore = new EventStore(databaseConnection);

            var userSnapshot = new SnapshotToTable <User>(
                databaseConnection,
                @"INSERT INTO users (id, name, version) VALUES (@Id, @Name, @Version)
                 ON CONFLICT (id)
                 DO UPDATE SET name = @Name, version = @Version");

            eventStore.AddSnapshot(userSnapshot);

            // Initialize Event Store
            eventStore.Init();

            repository = new Repository <User>(eventStore);
        }
Example #5
0
        public void UpgradeDataBase()
        {
            // start conecxão da db.
            using (var connection = new NpgsqlConnection(cnn))
            {
                var databaseProvider = new PostgresqlDatabaseProvider(connection);
                var migrator         = new SimpleMigrator(assemblyTo, databaseProvider);

                // carregar todos os estados de versões da base de dados.
                migrator.Load();

                // quando existir uma versão já ativa, inicie as migrações apratir de uma versão especifica.
                //migrator.Baseline(10);

                // verificar se a versão da db atual é diferente da ultima versão dos arquivos de migrações.
                if (migrator.CurrentMigration.Version != migrator.LatestMigration.Version)
                {
                    // atualizar db para ultima versão.
                    migrator.MigrateToLatest();

                    // atualizar db até o arquivo de migração numero 11.
                    //migrator.MigrateTo(11);
                }

                Assert.IsTrue(migrator.CurrentMigration.Version == migrator.LatestMigration.Version);
            }
        }
        public MigrateDb(ISession connection)
        {
            var migrationsAssembly = Assembly.GetExecutingAssembly();
            var migrator           = new SimpleMigrator(migrationsAssembly, new SqliteDatabaseProvider(connection.Connection as SQLiteConnection));

            migrator.Load();
            migrator.MigrateToLatest();
        }
Example #7
0
        public void InitializeDatabase()
        {
            var migrator = new SimpleMigrator(typeof(DatabaseInitializer).Assembly,
                                              new PostgresqlDatabaseProvider(_con));

            migrator.Load();
            migrator.MigrateTo(1);
            migrator.MigrateToLatest();
        }
Example #8
0
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;

            var provider = new PostgresqlDatabaseProvider(new NpgsqlConnection(Configuration.GetConnectionString("DefaultConnection")));
            var migrator = new SimpleMigrator(typeof(Database.Migrations._001_Tokens).GetTypeInfo().Assembly, provider);

            migrator.Load();
            migrator.MigrateToLatest();
        }
Example #9
0
        public void Start()
        {
            using (var uow = _dbFactory.Create <IUnitOfWork, IFooSession>(IsolationLevel.Serializable))
            {
                var databaseProvider = new SqliteDatabaseProvider(uow.Connection as System.Data.Common.DbConnection);
                var migrator         = new SimpleMigrator(Assembly.GetExecutingAssembly(), databaseProvider);

                migrator.Load();
                migrator.MigrateToLatest();
            }
        }
Example #10
0
        public void Migrate(string[] args)
        {
            var options          = Cli.Parse <MigrateOptions>(args);
            var connectionString = $"SslMode=none;Server={options.Host};Port={options.Port};Database={options.Database};Uid={options.User};Pwd={options.Password};";

            using (var con = new MySqlConnection(connectionString))
            {
                con.Open();
                var databaseProvider = new MysqlDatabaseProvider(con)
                {
                    TableName = "__version"
                };
                AssemblyMigrationProvider assemblyProvider = null;
                switch (options.Schema.ToLower())
                {
                case "auth":
                    assemblyProvider = new AssemblyMigrationProvider(s_authType.Assembly, s_authType.Namespace);
                    break;

                case "game":
                    assemblyProvider = new AssemblyMigrationProvider(s_gameType.Assembly, s_gameType.Namespace);
                    break;

                default:
                    Error("Invalid schema");
                    break;
                }

                try
                {
                    var migrator = new SimpleMigrator(assemblyProvider, databaseProvider, new ConsoleLogger());
                    migrator.Load();
                    if (options.CurrentVersion > 0)
                    {
                        migrator.Baseline(options.CurrentVersion);
                    }

                    if (options.Version == 0)
                    {
                        migrator.MigrateToLatest();
                    }
                    else
                    {
                        migrator.MigrateTo(options.Version);
                    }
                }
                catch (MigrationNotFoundException ex)
                {
                    Error(ex.Message);
                }
            }
        }
Example #11
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();
            }
        }
Example #12
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 #13
0
        public static void Main(string[] args)
        {
            var migrationsAssembly = Assembly.GetEntryAssembly();

            using (var connection = new NpgsqlConnection("Host=127.0.0.1;Username=doublemazeuser;Password=mycoolpass;Database=doublemaze"))
            {
                var databaseProvider = new PostgresqlDatabaseProvider(connection);
                var migrator         = new SimpleMigrator(migrationsAssembly, databaseProvider);
                migrator.Load();

                migrator.MigrateToLatest();
            }
        }
Example #14
0
        private static void Migrate()
        {
            var migrationsAssembly = typeof(Program).Assembly;

            using (var connection = new NpgsqlConnection(StoreFactory.ConnectionString))
            {
                var databaseProvider = new PostgresqlDatabaseProvider(connection);
                //new SimpleMigrator<X, B>(migrationsAssembly, null);
                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 #16
0
        public MigrateDb()
        {
            var migrationsAssembly = Assembly.GetExecutingAssembly();
            var versionProvider    = new SqliteVersionProvider();
            var factory            = A.Fake <IDbFactory>();

            Connection = new TestSession(factory, "Data Source=:memory:;Version=3;New=True;");

            A.CallTo(() => factory.Create <IUnitOfWork>(A <IDbFactory> ._, A <ISession> ._))
            .ReturnsLazily(CreateUnitOrWork);
            var migrator = new SimpleMigrator(migrationsAssembly, Connection, versionProvider);

            migrator.Load();
            migrator.MigrateToLatest();
        }
Example #17
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 #18
0
        public void TestSetup()
        {
            if (TestSession != null)
            {
                return;
            }
            if (!File.Exists(DbName))
            {
                using (File.Create(DbName)) { }
            }
            TestSession = new TestSqlForGuid(A.Fake <IDbFactory>());
            var migrator = new SimpleMigrator(Assembly.GetExecutingAssembly(), new MssqlDatabaseProvider(TestSession.Connection as SqlConnection));

            migrator.Load();
            migrator.MigrateToLatest();
        }
Example #19
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 #20
0
        /// <summary>
        /// Migrates the database up to the latest version.
        /// </summary>
        /// <param name="dbConnectionFactory">Factory to create a <see cref="IDbConnection"/> instance.</param>
        public static void Migrate(IDbConnectionFactory dbConnectionFactory)
        {
            var migrationsAssembly = typeof(DatabaseMigrator).Assembly;

            using (var connection = dbConnectionFactory.Create())
            {
                EnsureDatabaseDirectoryExists(connection.ConnectionString);

                var databaseProvider = new SQLiteNetDatabaseProvider((SQLiteConnection)connection);
                var migrator         = new SimpleMigrator <SQLiteConnection, SQLiteNetMigration>(migrationsAssembly, databaseProvider);
                migrator.Load();

                if (migrator.CurrentMigration.Version != migrator.LatestMigration.Version)
                {
                    migrator.MigrateToLatest();
                }
            }
        }
Example #21
0
        private static void ExecuteMigrations(IDbConnection connection, string[] args)
        {
            if (connection == null)
            {
                return;
            }
            using (var conn = connection)
            {
                var databaseProvider = new SqlDatabaseProvider(conn);

                var migrator = new SimpleMigrator <IDbConnection, BaseMigration>(Assembly.GetCallingAssembly(), databaseProvider);

                try
                {
                    if (args == null || args.Length == 0)
                    {
                        migrator.Load();
                        if (RollbackVersion.HasValue && RollbackVersion > 0)
                        {
                            migrator.MigrateTo(RollbackVersion.Value);
                        }

                        if (MigrateToLatest)
                        {
                            migrator.MigrateToLatest();
                        }
                    }
                    else
                    {
                        var console = new ConsoleRunner(migrator);
                        console.Run(args);
                    }
                }
                catch
                {
                    throw;
                }
            }
        }
Example #22
0
        static void Main(string[] args)
        {
            using (var connection = new ConnectionFactory().Create())
            {
                var databaseProvider = new SqliteDatabaseProvider(connection);
                var migrator         = new SimpleMigrator(Assembly.GetEntryAssembly(), databaseProvider, new ConsoleLogger());
                migrator.Load();
                if (args.ElementAtOrDefault(0) == "migrate")
                {
                    var runner = new ConsoleRunner(migrator);
                    runner.Run(args.Skip(1).ToArray());
                    return;
                }
                else
                {
                    migrator.MigrateToLatest();
                }
            }

            var clientConfig = new ClientConfig()
            {
                Server        = "ircd.antonymale.co.uk",
                Port          = 6667,
                IsSecure      = false,
                Nickname      = "guarddog",
                RealName      = "guarddog",
                Username      = "******",
                PermanentlyOp = true,
                Channels      =
                {
                    new ChannelConfig()
                    {
                        Name = "#test"
                    },
                    new ChannelConfig()
                    {
                        Name = "#admin"
                    },
                },
                NickservPassword = "******",
                RequireCommandPrefixInPrivmsg = true,
            };

            using (var client = new Client(clientConfig))
            {
                var banRepository     = new BanRepository();
                var aKickModuleConfig = new AKickModuleConfig()
                {
                    Channels =
                    {
                        new AkickModuleChannelConfig()
                        {
                            OpChannel     = client.Channels["#test"],
                            AdminChannels ={ client.Channels["#admin"]                     },
                        },
                    }
                };

                var akick = new AkickModule(client, aKickModuleConfig, banRepository);
                akick.Load();

                client.Open();

                Console.ReadLine();
            }


            Console.WriteLine("Hello World!");
        }
        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();
            }
        }