private static void UpdateToVersionOne(DatabaseSchemaUpdater schemaUpdater)
 {
     schemaUpdater.AddTable<RecordingTag>();
     schemaUpdater.AddTable<Tag>();
     schemaUpdater.DatabaseSchemaVersion = 1;
     schemaUpdater.Execute();
 }
示例#2
0
        private void migrateFromVersion1()
        {
            dbUpdater.AddTable <TimelogTask>();
            dbUpdater.AddTable <TimelogSetting>();

            dbUpdater.AddColumn <WorkTask>("TimelogTaskUID");
            dbUpdater.AddAssociation <WorkTask>("TimelogTask");
            dbUpdater.AddColumn <WorkTask>("LastTimelogRegistration");
            dbUpdater.AddColumn <WorkTask>("TimelogWorkunitGUID");
            dbUpdater.AddColumn <WorkTask>("IsForTimelogRegistration");
            dbUpdater.AddColumn <Setting>("IsUsingTimelog");

            dbUpdater.DatabaseSchemaVersion = latestVersion;
            dbUpdater.Execute();
        }
示例#3
0
 private void UpdateToVersionOne(DatabaseSchemaUpdater updater)
 {
     updater.AddTable<AwfulThreadBookmark>();
     updater.AddAssociation<AwfulProfile>("ThreadBookmarks");
     updater.AddColumn<AwfulProfile>("LastBookmarkRefresh");
     updater.AddAssociation<AwfulThread>("ThreadBookmarks");
     updater.DatabaseSchemaVersion = 1;
     updater.Execute();
 }
示例#4
0
        public void AddTablesHistoryTables(DatabaseSchemaUpdater updater)
        {
            //DML update
            updater.AddTable <StopHistoryEntry>();
            updater.AddTable <PlanningHistoryEntry>();
            updater.AddTable <RecentEntry>();
            updater.DatabaseSchemaVersion = 2;
            updater.Execute();

            //DDL update
            var ctx = (DyanamicDBContext)updater.Context;

            foreach (var entry in ctx.HistoryEntries)
            {
                if (entry.TypeLegacy == HistoryEntry.HistoryEntryTypeLegacy.Stop)
                {
                    entry.TypeIDLegacy = 0;
                    var stopEntry = new StopHistoryEntry {
                        StopID = entry.StopID, Count = entry.Count
                    };
                    ctx.StopHistoryEntries.InsertOnSubmit(stopEntry);
                    ctx.HistoryEntries.DeleteOnSubmit(entry);
                }
                else if (entry.TypeLegacy == HistoryEntry.HistoryEntryTypeLegacy.SourceTarget)
                {
                    entry.TypeIDLegacy = 0;
                    var planningEntry = new PlanningHistoryEntry {
                        StopID = entry.StopID, Count = entry.Count, IsSource = false
                    };
                    var planningEntry2 = new PlanningHistoryEntry {
                        StopID = entry.StopID, Count = entry.Count, IsSource = true
                    };
                    ctx.PlanningHistoryEntries.InsertOnSubmit(planningEntry);
                    ctx.PlanningHistoryEntries.InsertOnSubmit(planningEntry2);
                    ctx.HistoryEntries.DeleteOnSubmit(entry);
                }
                else
                {
                    entry.TypeIDLegacy = 0;
                }
            }
            ctx.SubmitChanges();
        }
        public RelatorioDataBaseContext(string connectionString)
            : base(connectionString)
        {
            if (!this.DatabaseExists())
            {
                try
                {
                    this.CreateDatabase();

                    DatabaseSchemaUpdater dbUpdater = this.CreateDatabaseSchemaUpdater();
                    dbUpdater.DatabaseSchemaVersion = DB_VERSION;
                    dbUpdater.Execute();
                }
                catch (Exception e)
                {
                    Debug.WriteLine(e.StackTrace);
                    Debug.WriteLine(e.Message);
                    MessageBox.Show("PROBLEMA AO CRIAR BANCO DE DADOS");
                }
            }
            else
            {
                try
                {
                    DatabaseSchemaUpdater dbUpdater = this.CreateDatabaseSchemaUpdater();

                    if (dbUpdater.DatabaseSchemaVersion < DB_VERSION)
                    {
                        if (dbUpdater.DatabaseSchemaVersion == 0)
                        {
                            dbUpdater.AddTable <Estudo>();
                            dbUpdater.DatabaseSchemaVersion = DB_VERSION;
                            dbUpdater.Execute();
                        }
                        if (dbUpdater.DatabaseSchemaVersion < 2)
                        {
                            dbUpdater.AddColumn <Relatorio>("Folhetos");
                            dbUpdater.DatabaseSchemaVersion = DB_VERSION;
                            dbUpdater.Execute();
                        }
                    }
                }
                catch (Exception e)
                {
                    //this.DeleteDatabase();
                    Debug.WriteLine(e.StackTrace);
                    Debug.WriteLine(e.Message);
                    MessageBox.Show("PROBLEMA AO ATUALIZAR BANCO DE DADOS");
                }
            }
        }
示例#6
0
        public void CreateTable <T>() where T : class
        {
            bool TableExists = this.Table <T>() != null;

            if (TableExists)
            {
                try { var x = this.Table <T>().Count(); }
                catch { TableExists = false; }
            }

            if (!TableExists)
            {
                DatabaseSchemaUpdater su = Microsoft.Phone.Data.Linq.Extensions.CreateDatabaseSchemaUpdater(this);
                su.AddTable <T>();
                su.Execute();
            }
        }
 public static void UpdateDataContext(DatabaseSchemaUpdater dataBaseUpdater)
 {
     dataBaseUpdater.AddTable<BudgetItem>();
 }
        public static void UpdateStructure(DatabaseSchemaUpdater dataBaseUpdater)
        {
            if (dataBaseUpdater.DatabaseSchemaVersion == 2)
            {
                dataBaseUpdater.AddColumn<Category>("Favourite");
                dataBaseUpdater.DatabaseSchemaVersion = 3;
                dataBaseUpdater.Execute();
            }
            if (dataBaseUpdater.DatabaseSchemaVersion == 3)
            {
                BudgetItem.UpdateDataContext(dataBaseUpdater);
                BudgetProject.UpdateDataContext(dataBaseUpdater);
                BudgetMonthlyReport.UpdateUpdateDataContext(dataBaseUpdater);
                dataBaseUpdater.DatabaseSchemaVersion = 4;
                dataBaseUpdater.Execute();
            }
            if (dataBaseUpdater.DatabaseSchemaVersion == 4)
            {
                BudgetProject.UpdateDataContext_At_v190(dataBaseUpdater);
                Category.UpdateDataContext_At_v190(dataBaseUpdater);
                BudgetItem.UpdateDataContextAt_190(dataBaseUpdater);
                dataBaseUpdater.AddTable<TallySchedule>();
                dataBaseUpdater.AddTable<PeopleProfile>();
                Repayment.UpdateTableStructureAtV1_9_1(dataBaseUpdater);
                dataBaseUpdater.DatabaseSchemaVersion = 5;
                dataBaseUpdater.Execute();
                dataBaseUpdater.Context.GetTable<BudgetProject>().ToList<BudgetProject>().ForEach(delegate(BudgetProject p)
                {
                    p.Amount = p.GetMoney();
                });
                dataBaseUpdater.Context.SubmitChanges();
            }
            if (dataBaseUpdater.DatabaseSchemaVersion == 5)
            {
                AccountItem.UpdateStructureAt1_9_1(dataBaseUpdater);
                SchedulePlanningTable.UpdateStructureAt_1_9_1(dataBaseUpdater);
                TallySchedule.UpdateStructureAt_1_9_1(dataBaseUpdater);
                dataBaseUpdater.DatabaseSchemaVersion = 6;
                dataBaseUpdater.Execute();
            }
            if (dataBaseUpdater.DatabaseSchemaVersion == 6)
            {
                PeopleGroup.HandleUpdatingAt_1_9_3(dataBaseUpdater);
                PeopleProfile.UpdateStructureAt_1_9_3(dataBaseUpdater);
                Repayment.UpdateTableStructureAtV1_9_3(dataBaseUpdater);
                dataBaseUpdater.DatabaseSchemaVersion = 7;
                dataBaseUpdater.Execute();
                TinyMoneyDataContext db = dataBaseUpdater.Context as TinyMoneyDataContext;
                LoadDefaultPeopleGroups(db);
                Repayment.UpdateOldData(db);
            }
            if (dataBaseUpdater.DatabaseSchemaVersion == 7)
            {
                PictureInfo.UpdateStructureAt_196(dataBaseUpdater);
                PeopleAssociationData.UpdateStructureAt_196(dataBaseUpdater);
                AccountItem.UpdateStructureAt1_9_6(dataBaseUpdater);
                dataBaseUpdater.DatabaseSchemaVersion = 8;
                dataBaseUpdater.Execute();
            }

            if (dataBaseUpdater.DatabaseSchemaVersion == 8)
            {
                Account.UpdateDataContext_At_v1972(dataBaseUpdater);
                dataBaseUpdater.DatabaseSchemaVersion = DatabaseVersion.v1_9_7;
                dataBaseUpdater.Execute();
            }

            if (dataBaseUpdater.DatabaseSchemaVersion == DatabaseVersion.v1_9_7)
            {
                TransferingItem.UpdateStructureAt_1_9_8(dataBaseUpdater);
                TallySchedule.UpdateStructureAt_1_9_8(dataBaseUpdater);

                // TODO: update to 1.98
                dataBaseUpdater.DatabaseSchemaVersion = DatabaseVersion.v1_9_8;
                dataBaseUpdater.Execute();
            }

            if (dataBaseUpdater.DatabaseSchemaVersion == DatabaseVersion.v1_9_8)
            {
                AccountItem.UpdateAt199(dataBaseUpdater);

                dataBaseUpdater.DatabaseSchemaVersion = DatabaseVersion.v1_9_9;
                dataBaseUpdater.Execute();

                try
                {
                    BudgetManager.BugFixingFor1_9_9(dataBaseUpdater.Context as TinyMoneyDataContext);
                }
                catch { }
            }

            if (dataBaseUpdater.DatabaseSchemaVersion == DatabaseVersion.v1_9_9)
            {
                TallySchedule.UpdateTableStructureAtV1_9_9(dataBaseUpdater);

                Account.UpdateDataContext_At_v199(dataBaseUpdater);
                dataBaseUpdater.DatabaseSchemaVersion = DatabaseVersion.v1_9_9_2;
                dataBaseUpdater.Execute();

                try
                {
                    // update accounts order  
                    TinyMoneyDataContext db = dataBaseUpdater.Context as TinyMoneyDataContext;

                    Account.ResetOrders(db);
                    Category.UpdateDataContext_At_v199(db);

                    AppSetting.Instance.AutoBackupWhenAppUp = true;
                    db = null;
                }
                catch (Exception ex)
                {

                }
            }
        }
 public static void UpdateUpdateDataContext(DatabaseSchemaUpdater dataBaseUpdater)
 {
     dataBaseUpdater.AddTable<BudgetMonthlyReport>();
 }
 public static void UpdateStructureAt_196(DatabaseSchemaUpdater updater)
 {
     updater.AddTable<PeopleAssociationData>();
 }
 public static void UpdateDataContext(DatabaseSchemaUpdater dataBaseUpdater)
 {
     if (dataBaseUpdater != null)
     {
         dataBaseUpdater.AddTable<BudgetProject>();
     }
 }
示例#12
0
        public static void UpdateStructure(DatabaseSchemaUpdater dataBaseUpdater)
        {
            if (dataBaseUpdater.DatabaseSchemaVersion == 2)
            {
                dataBaseUpdater.AddColumn<Category>("Favourite");
                dataBaseUpdater.DatabaseSchemaVersion = 3;
                dataBaseUpdater.Execute();
            }
            if (dataBaseUpdater.DatabaseSchemaVersion == 3)
            {
                BudgetItem.UpdateDataContext(dataBaseUpdater);
                BudgetProject.UpdateDataContext(dataBaseUpdater);
                BudgetMonthlyReport.UpdateUpdateDataContext(dataBaseUpdater);
                dataBaseUpdater.DatabaseSchemaVersion = 4;
                dataBaseUpdater.Execute();
            }
            if (dataBaseUpdater.DatabaseSchemaVersion == 4)
            {
                BudgetProject.UpdateDataContext_At_v190(dataBaseUpdater);
                Category.UpdateDataContext_At_v190(dataBaseUpdater);
                BudgetItem.UpdateDataContextAt_190(dataBaseUpdater);
                dataBaseUpdater.AddTable<TallySchedule>();
                dataBaseUpdater.AddTable<PeopleProfile>();
                Repayment.UpdateTableStructureAtV1_9_1(dataBaseUpdater);
                dataBaseUpdater.DatabaseSchemaVersion = 5;
                dataBaseUpdater.Execute();
                dataBaseUpdater.Context.GetTable<BudgetProject>().ToList<BudgetProject>().ForEach(delegate(BudgetProject p)
                {
                    p.Amount = p.GetMoney();
                });
                dataBaseUpdater.Context.SubmitChanges();
            }
            if (dataBaseUpdater.DatabaseSchemaVersion == 5)
            {
                AccountItem.UpdateStructureAt1_9_1(dataBaseUpdater);
                SchedulePlanningTable.UpdateStructureAt_1_9_1(dataBaseUpdater);
                TallySchedule.UpdateStructureAt_1_9_1(dataBaseUpdater);
                dataBaseUpdater.DatabaseSchemaVersion = 6;
                dataBaseUpdater.Execute();
            }
            if (dataBaseUpdater.DatabaseSchemaVersion == 6)
            {
                PeopleGroup.HandleUpdatingAt_1_9_3(dataBaseUpdater);
                PeopleProfile.UpdateStructureAt_1_9_3(dataBaseUpdater);
                Repayment.UpdateTableStructureAtV1_9_3(dataBaseUpdater);
                dataBaseUpdater.DatabaseSchemaVersion = 7;
                dataBaseUpdater.Execute();
                TinyMoneyDataContext db = dataBaseUpdater.Context as TinyMoneyDataContext;
                LoadDefaultPeopleGroups(db);
                Repayment.UpdateOldData(db);
            }
            if (dataBaseUpdater.DatabaseSchemaVersion == 7)
            {
                PictureInfo.UpdateStructureAt_196(dataBaseUpdater);
                PeopleAssociationData.UpdateStructureAt_196(dataBaseUpdater);
                AccountItem.UpdateStructureAt1_9_6(dataBaseUpdater);
                dataBaseUpdater.DatabaseSchemaVersion = 8;
                dataBaseUpdater.Execute();
            }

            if (dataBaseUpdater.DatabaseSchemaVersion == 8)
            {
                Account.UpdateDataContext_At_v1972(dataBaseUpdater);
                dataBaseUpdater.DatabaseSchemaVersion = DatabaseVersion.LatestVersion;
                dataBaseUpdater.Execute();

                Repayment.UpdateTableStructureAtV1_9_8(dataBaseUpdater, ViewModels.BorrowLeanManager.BorrowLeanViewModel.EnsureStatus);
            }

        }
示例#13
0
 private void Update(DatabaseSchemaUpdater dbUpdater)
 {
     dbUpdater.AddTable <Marker>();
 }
示例#14
0
 public static void HandleUpdatingAt_1_9_3(DatabaseSchemaUpdater updater)
 {
     updater.AddTable<PeopleGroup>();
 }
示例#15
0
        public void createDB()
        {
            DatabaseSchemaUpdater updater = null;

            if (DatabaseExists() == false)
            {
                CreateDatabase();
                updater = Microsoft.Phone.Data.Linq.Extensions.CreateDatabaseSchemaUpdater(this);
                updater.DatabaseSchemaVersion = DB_VERSION;
                updater.Execute();

                // Here we can determine if this was a new install or not. If yes, we install a key
                // to count how many times the app has been restarted.
                IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
                settings.Add(App.LSKEY_PODCATCHER_STARTS, 1);
                settings.Save();
            }


            if (updater == null)
            {
                updater = Microsoft.Phone.Data.Linq.Extensions.CreateDatabaseSchemaUpdater(this);

                if (updater.DatabaseSchemaVersion < 2)
                {
                    // Added in version 2 (release 1.1.0.0)
                    //  - PodcastEpisodeModel.EpisodeFileMimeType
                    updater.AddColumn <PodcastEpisodeModel>("EpisodeFileMimeType");
                }

                if (updater.DatabaseSchemaVersion < 3)
                {
                    updater.AddColumn <PodcastEpisodeModel>("TotalLengthTicks");
                }

                if (updater.DatabaseSchemaVersion < 4)
                {
                    updater.AddTable <SettingsModel>();
                }

                if (updater.DatabaseSchemaVersion < 5)
                {
                    updater.AddColumn <PodcastSubscriptionModel>("Username");
                    updater.AddColumn <PodcastSubscriptionModel>("Password");
                    updater.AddTable <LastPlayedEpisodeModel>();
                }

                if (updater.DatabaseSchemaVersion < 6)
                {
                    updater.AddColumn <SettingsModel>("SelectedExportIndex");
                }

                if (updater.DatabaseSchemaVersion < 7)
                {
                    updater.AddColumn <SettingsModel>("ListenedThreashold");
                    updater.AddColumn <PodcastEpisodeModel>("EpisodeDownloadState");
                    updater.AddColumn <PodcastEpisodeModel>("EpisodePlayState");
                    updater.AddColumn <PodcastSubscriptionModel>("SubscriptionSelectedKeepNumEpisodesIndex");
                    updater.AddColumn <PodcastSubscriptionModel>("SubscriptionIsDeleteEpisodes");
                }

                if (updater.DatabaseSchemaVersion < 8)
                {
                    updater.AddColumn <PodcastSubscriptionModel>("IsContinuousPlayback");
                }

                if (updater.DatabaseSchemaVersion < 9)
                {
                    updater.AddColumn <SettingsModel>("PlaylistSortOrder");
                    updater.AddColumn <SettingsModel>("IsAddDownloadsToPlayQueue");
                }

                if (updater.DatabaseSchemaVersion < 10)
                {
                    updater.AddColumn <PodcastSubscriptionModel>("UnplayedEpisodes");
                    updater.AddColumn <PodcastSubscriptionModel>("PartiallyPlayedEpisodes");

                    App.forceReloadOfEpisodeData = true;
                }

                updater.DatabaseSchemaVersion = DB_VERSION;
                updater.Execute();
            }

            // Force to check if we have tables or not.
            try
            {
                IEnumerator <PodcastEpisodeModel>      enumEntityEpisodes      = Episodes.GetEnumerator();
                IEnumerator <PodcastSubscriptionModel> enumEntitySubscriptions = Subscriptions.GetEnumerator();
            }
            catch (Exception)
            {
                Debug.WriteLine("Got exception while asking for table enumerator. Table probably doesn't exist...");

                DeleteDatabase();
                CreateDatabase();
                SubmitChanges();

                Debug.WriteLine("Recreated database.");
            }
        }
示例#16
0
 private void Update(DatabaseSchemaUpdater dbUpdater)
 {
     dbUpdater.AddTable <Favorite>();
 }
 public static void UpdateStructureAt_1_9_1(DatabaseSchemaUpdater databaseUpdater)
 {
     databaseUpdater.AddTable<SchedulePlanningTable>();
 }
示例#18
0
        public DyanamicDBContext(string connectionString, int currentDDBVersion, bool forbidMigration = false) //currentDDBVersion = Config.DDBVersion
            : base(connectionString)
        {
            if (!DatabaseExists())
            {
                CreateDatabase();
                DatabaseSchemaUpdater versionSchemaUpdater = this.CreateDatabaseSchemaUpdater();
                versionSchemaUpdater.DatabaseSchemaVersion = currentDDBVersion;
                versionSchemaUpdater.Execute();
            }
            else
            {
                DatabaseSchemaUpdater versionSchemaUpdater = this.CreateDatabaseSchemaUpdater();
                int version = versionSchemaUpdater.DatabaseSchemaVersion;
                if (version != currentDDBVersion)
                {
                    if (forbidMigration)
                    {
                        throw new InvalidOperationException("Database migration is forbidden!");
                    }
                    Migrates.Execute(versionSchemaUpdater, version, currentDDBVersion);
                }
            }

            try
            {
                FavoriteEntry entry = FavoriteEntries.FirstOrDefault();
            }
            catch (Exception e)
            {
                DatabaseSchemaUpdater databaseSchemaUpdater = this.CreateDatabaseSchemaUpdater();
                databaseSchemaUpdater.AddTable <FavoriteEntry>();
                databaseSchemaUpdater.Execute();
            }
            try
            {
                TileEntry entry = TileEntries.FirstOrDefault();
            }
            catch (Exception e)
            {
                DatabaseSchemaUpdater databaseSchemaUpdater = this.CreateDatabaseSchemaUpdater();
                databaseSchemaUpdater.AddTable <TileEntry>();
                databaseSchemaUpdater.Execute();
            }
            try
            {
                HistoryEntry entry = HistoryEntries.FirstOrDefault();
            }
            catch (Exception e)
            {
                DatabaseSchemaUpdater databaseSchemaUpdater = this.CreateDatabaseSchemaUpdater();
                databaseSchemaUpdater.AddTable <HistoryEntry>();
                databaseSchemaUpdater.Execute();
            }
            try
            {
                StopHistoryEntry entry = StopHistoryEntries.FirstOrDefault();
            }
            catch (Exception e)
            {
                DatabaseSchemaUpdater databaseSchemaUpdater = this.CreateDatabaseSchemaUpdater();
                databaseSchemaUpdater.AddTable <StopHistoryEntry>();
                databaseSchemaUpdater.Execute();
            }
            try
            {
                PlanningHistoryEntry entry = PlanningHistoryEntries.FirstOrDefault();
            }
            catch (Exception e)
            {
                DatabaseSchemaUpdater databaseSchemaUpdater = this.CreateDatabaseSchemaUpdater();
                databaseSchemaUpdater.AddTable <PlanningHistoryEntry>();
                databaseSchemaUpdater.Execute();
            }
            try
            {
                RecentEntry entry = RecentEntries.FirstOrDefault();
            }
            catch (Exception e)
            {
                DatabaseSchemaUpdater databaseSchemaUpdater = this.CreateDatabaseSchemaUpdater();
                databaseSchemaUpdater.AddTable <RecentEntry>();
                databaseSchemaUpdater.Execute();
            }
        }
示例#19
0
 public static void UpdateStructureAt_196(DatabaseSchemaUpdater updater)
 {
     updater.AddTable<PictureInfo>();
 }
示例#20
0
        /// <summary>
        /// This Method adds the Localization Table, if it doesn't exist
        /// Version 0.9.10.0/1.0
        /// </summary>
        /// <param name="schema"></param>
        private static void AddLocalization(DatabaseSchemaUpdater schema)
        {
            var ctx = schema.Context;

            try
            {
                var locTable = ctx.GetTable<Localization>();
                if (locTable.Any())
                {
                    LogManager.GetLogger(typeof(VersionMigration)).Info("Localization Table already exists");
                }
            }
            catch (Exception ex)
            {
                schema.AddTable<Localization>();
            }
        }
示例#21
0
 private void UpdateToVersionTwo(DatabaseSchemaUpdater updater)
 {
     updater.AddTable<SAAuthToken>();
     updater.AddAssociation<SAAuthToken>("Profile");
     updater.AddAssociation<Profile>("Tokens");
     updater.DatabaseSchemaVersion = 2;
     updater.Execute();
 }