Пример #1
0
        private async static Task MigrateAccountsAsync(string sourceConnectionString, string targetConnectionString)
        {
            using (var source = new AccountsDataContext(new DbContextOptionsBuilder <AccountsDataContext>().UseSqlite(sourceConnectionString).Options, new SchemaOptions <AccountsDataContext>()))
                using (var target = new AccountsDataContext(new DbContextOptionsBuilder <AccountsDataContext>().UseSqlServer(targetConnectionString).Options, new SchemaOptions <AccountsDataContext>()
                {
                    Name = "Accounts"
                }))
                {
                    await CopyDbSetAsync(source, target, c => c.Users);
                    await CopyDbSetAsync(source, target, c => c.UserClaims);
                    await CopyDbSetAsync(source, target, c => c.UserLogins);
                    await CopyDbSetAsync(source, target, c => c.UserTokens);
                    await CopyDbSetAsync(source, target, c => c.Roles);
                    await CopyDbSetAsync(source, target, c => c.RoleClaims);
                    await CopyDbSetAsync(source, target, c => c.UserRoles);

                    await target.SaveChangesAsync();
                }
        }
Пример #2
0
        static void Main(string[] args)
        {
            if (args.Length != 1)
            {
                Console.WriteLine("Pass one argument with connection string to database to migrate.");
                return;
            }

            string connectionString = args[0];

            Console.WriteLine("Creating contexts.");
            using var accounts = new AccountsDataContext(DbContextOptions <AccountsDataContext>(connectionString, "Accounts"), Schema <AccountsDataContext>("Accounts"));
            using var entries  = new EntriesDataContext(DbContextOptions <EntriesDataContext>(connectionString, "Entries"), Schema <EntriesDataContext>("Entries"));

            Console.WriteLine("Migrating accounts db.");
            accounts.Database.Migrate();

            Console.WriteLine("Migrating entries db.");
            entries.Database.Migrate();

            Console.WriteLine("Done.");
        }