} // end Mirgate()

        private static void PrintMigrationStatus(DA.WWWingsContext ctx)
        {
            CUI.H2("Migration Status");
            try
            {
                Dictionary <string, string> migrationsStatus = new Dictionary <string, string>();
                var migrations = ctx.Database.GetMigrationStatus();

                foreach (var item in migrations)
                {
                    if (item.Value)
                    {
                        CUI.PrintGreen(item.Key + ":" + " Applied");
                    }
                    else
                    {
                        CUI.PrintRed(item.Key + ":" + " TODO");
                    }
                }
            }
            catch (Exception)
            {
                CUI.PrintError("Database not available!");
            }
        }
Beispiel #2
0
        private void C_Orte_TextUpdate(object sender, EventArgs e)
        {
            // Das ist NICHT richtig: ctx.FlightSet.Local.Clear();
            ctx = new DA.WWWingsContext();
            string ort = this.C_Orte.Text;

            var set = ctx.FlightSet.Where(f => f.Departure.ToLower().Contains(ort.ToLower())).ToList();

            this.Text = set.Count + " Flüge from " + ort;
            this.flugBindingSource.DataSource = ctx.FlightSet.Local.ToBindingList();
        }
        public int Migrate()
        {
            CUI.H1("Migrate Database...");
            try
            {
                if (!(String.IsNullOrEmpty(this.ConnectionString)))
                {
                    DA.WWWingsContext.ConnectionString = this.ConnectionString;
                }
                CUI.Print("Connection String=" + DA.WWWingsContext.ConnectionString);

                using (var ctx = new DA.WWWingsContext())
                {
                    IEnumerable <string> mset = ctx.Database.GetMigrations();
                    CUI.H2("Available Migrations: " + mset.Count());
                    foreach (var m in mset)
                    {
                        Console.WriteLine(m);
                    }


                    IEnumerable <string> appliedMigrations = ctx.Database.GetAppliedMigrations();
                    CUI.H2("Existing Migrations in this database: " + appliedMigrations.Count());
                    foreach (var m in appliedMigrations)
                    {
                        Console.WriteLine(m);
                    }


                    //var migrator = ctx.GetService<IMigrator>();
                    //var script = migrator.GenerateScript("v5", "v8", true);
                    var migrator = ctx.GetService <IMigrator>();
                    migrator.Migrate("v8");
                    migrator.MigrateAsync("v8");

                    PrintMigrationStatus(ctx);
                    CUI.H2("Starting Migration...");
                    //ctx.Database.EnsureCreated(); // DO NOT USE THIS METHOD BEFORE!
                    ctx.Database.Migrate();
                    CUI.PrintGreen("Migrations done!");

                    PrintMigrationStatus(ctx);
                    return(0);
                } // end using
            }
            catch (Exception ex)
            {
                CUI.PrintError("Migration Error: " + ex.ToString());
                System.Environment.Exit(2);
                return(2);
            }
        } // end Mirgate()