public TestResourceStore() { RemoveDBFiles(); MyPalStorage.ResourceCacheSize = 16; MyPalStorage.CreateDatabase(); DoOpenDatabase(); }
public override void SetUp() { RemoveDBFiles(); MyPalStorage.ResourceCacheSize = 16; MyPalStorage.CreateDatabase(); MyPalStorage.OpenDatabase(); _storage = MyPalStorage.Storage; }
protected void InitStorage() { RemoveDBFiles(); MyPalStorage.ResourceCacheSize = 16; MyPalStorage.CreateDatabase(); MyPalStorage.OpenDatabase(); _storage = MyPalStorage.Storage; IndexConstructor.WorkDir = MyPalStorage.DBPath; }
public void Dispose() { MyPalStorage.CloseDatabase(); try { RemoveDBFiles(); } catch (Exception e) { Console.WriteLine(" Error cleaning DB files: " + e.Message); } }
private void _backupBtn_Click(object sender, EventArgs e) { string backupPath = _backupPath.Text; if (backupPath.Length > 0 && Directory.Exists(backupPath)) { SaveBackupPath(); _isBackuping = true; AdjustBackupButtonEnability(); MyPalStorage.BackupDatabase(false); Core.ResourceAP.QueueJob(JobPriority.Lowest, new MethodInvoker(MarkFinishedBackup)); } }
protected void CloseStorage() { MyPalStorage.CloseDatabase(); _storage = null; try { RemoveDBFiles(); } catch (Exception e) { Console.WriteLine(" Error cleaning DB files: " + e.Message); } }
internal PropTypeCollection(MyPalStorage storage, ITable propTypeTable) { _storage = storage; _propTypeTable = propTypeTable; _pseudoProps [0] = new PropTypeItem(ResourceProps.Id, "", PropDataType.Int, PropTypeFlags.Normal); _pseudoProps [1] = new PropTypeItem(ResourceProps.DisplayName, "DisplayName", PropDataType.String, PropTypeFlags.Normal); _pseudoProps [1].SetDisplayNames("Name", null); _pseudoProps [2] = new PropTypeItem(ResourceProps.Type, "Type", PropDataType.String, PropTypeFlags.Normal); }
public override void TearDown() { MyPalStorage.CloseDatabase(); _storage = null; try { RemoveDBFiles(); } catch (Exception e) { Console.WriteLine(" Error cleaning DB files: " + e.Message); } }
private void TestShutdown(MainFrame mainFrame) { try { Console.WriteLine("Closing MainFrame"); mainFrame.TestShutdown(); Console.WriteLine("Closing database"); MyPalStorage.CloseDatabase(); } finally { MainFrame._uiAsyncProcessor.QueueEndOfWork(); } MainFrame._uiAsyncProcessor.Dispose(); }
[Test] public void StressTest() { for (int i = 0; i < 100; i++) { RemoveDBFiles(); MyPalStorage.CreateDatabase(); MyPalStorage.OpenDatabase(); _storage = MyPalStorage.Storage; MyPalStorage.CloseDatabase(); _storage = null; try { RemoveDBFiles(); } catch (Exception e) { Console.WriteLine(" Error cleaning DB files: " + e.Message); } } }
internal ResourceTypeCollection(MyPalStorage storage, ITable resourceTypeTable) { _storage = storage; _resourceTypeTable = resourceTypeTable; }
public void Run() { _propTypes = _db.GetTable("PropTypes"); _resTypes = _db.GetTable("ResourceTypes"); _intProps = _db.GetTable("IntProps"); _stringProps = _db.GetTable("StringProps"); _longStringProps = _db.GetTable("LongStringProps"); _stringListProps = _db.GetTable("StringListProps"); _dateProps = _db.GetTable("DateProps"); _blobProps = _db.GetTable("BlobProps"); _doubleProps = _db.GetTable("DoubleProps"); _boolProps = _db.GetTable("BoolProps"); _resources = _db.GetTable("Resources"); _links = _db.GetTable("Links"); try { ShowProgress("Processing property types..."); RepairPropTypes(); ShowProgress("Processing resource types..."); RepairResourceTypes(); ShowProgress("Processing resources..."); RepairResources(); ShowProgress("Processing IntProps..."); RepairProps(_intProps, PropDataType.Int); ShowProgress("Processing StringProps..."); RepairProps(_stringProps, PropDataType.String); ShowProgress("Processing LongStringProps..."); RepairProps(_longStringProps, PropDataType.LongString); ShowProgress("Processing DateProps..."); RepairProps(_dateProps, PropDataType.Date); ShowProgress("Processing BlobProps..."); RepairProps(_blobProps, PropDataType.Blob); ShowProgress("Processing DoubleProps..."); RepairProps(_doubleProps, PropDataType.Double); ShowProgress("Processing StringListProps..."); RepairProps(_stringListProps, PropDataType.StringList); ShowProgress("Processing BoolProps..."); RepairProps(_boolProps, PropDataType.Bool); ShowProgress("Processing links..."); RepairLinks(); if (_fixErrors) { ShowProgress("Repairing BlobFileSystem..."); _db.RepairBlobFileSystem(); } } catch (Exception e) { ShowProgress("Fatal error during repair: " + e.Message); _repairException = e; _errorCount++; } ShowProgress("Closing database..."); _db.Shutdown(); if (_errorCount <= _fixCount) { MyPalStorage.OpenDatabase(); try { RepairRestrictions(); MyPalStorage.CloseDatabase(); } catch (StorageException e) { ShowProgress(e.ToString()); } finally { ShowProgress("done."); } } else { ShowProgress("Link restrictions were not checked because errors were found on earlier stages"); } ShowProgress("Processed {0} resources, {1} properties and {2} links", _resCount, _propCount, _linkCount); if (_errorCount == 0) { ShowProgress("No errors found"); } else { ShowProgress("{0} errors found, {1} errors fixed", _errorCount, _fixCount); } }
public void Close() { MyPalStorage.CloseDatabase(); }
private void RunRepair() { string dbPath = null; string[] args = Environment.GetCommandLineArgs(); if (args.Length > 1) { if (args [1] == "-?" || args [1] == "/?") { ShowHelp(); return; } string arg = args [1].ToLower(); if ((arg == "-workdir" || arg == "/workdir") && args.Length > 2) { dbPath = args [2]; if (args.Length > 3) { ProcessArgument(args [3]); } } else { ProcessArgument(arg); } } if (dbPath == null) { dbPath = RegUtil.DatabasePath; if (dbPath == null) { dbPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "JetBrains\\Omea"); } } OMEnv.WorkDir = dbPath; MyPalStorage.DBPath = Path.Combine(OMEnv.WorkDir, "db"); _ini = new IniFile(Path.Combine(OMEnv.WorkDir, "OmniaMea.ini")); Console.WriteLine("Processing database in " + dbPath); bool omniaMeaIsNotRun; Mutex omniaMeaMux = new Mutex(true, "OmniaMeaMutex", out omniaMeaIsNotRun); try { if (!omniaMeaIsNotRun && !_ignoreMutex) { Console.WriteLine("Omea is currently running. Please close Omea before running DBRepair."); return; } if (_deleteIndex) { DeleteIndex(); } else if (_deleteTextIndex) { DeleteFiles(OMEnv.WorkDir, "_*"); } else if (_backup) { string backupPath = _ini.ReadString("ResourceStore", "BackupPath", string.Empty); if (backupPath.Length > 0) { Console.Write("Database backup in progress..."); MyPalStorage.BackupDatabase(IOTools.Combine(backupPath, MyPalStorage._dbBackupFile)); Console.WriteLine("\r \rDatabase backup done."); } else { Console.WriteLine("Backup path is not set. Run Omea, in Options | Paths set the path."); } } else if (_restore) { string backupPath = _ini.ReadString("ResourceStore", "BackupPath", string.Empty); if (backupPath.Length > 0) { Console.Write("Restoring database from backup..."); MyPalStorage.RestoreFromBackup(IOTools.Combine(backupPath, MyPalStorage._dbBackupFile)); Console.WriteLine("\r \rDatabase restored from backup."); } else { Console.WriteLine("Backup path is not set. Run Omea, in Options | Paths set the path."); } } else { if (!_textAnalyze || _lowCheck) { ProcessDB(); } else { try { ProcessTextIndex(OMEnv.WorkDir + "\\_term.index"); } catch (FormatException exc_) { Console.Error.WriteLine(exc_.Message); } } } } finally { omniaMeaMux.Close(); } if (!_dump && !_deleteIndex) { Console.WriteLine("Press Enter to continue..."); Console.ReadLine(); } }
private void ProcessDB() { if (!DBHelper.DatabaseExists(MyPalStorage.DBPath, "MyPal")) { Console.WriteLine("Omea database not found"); return; } DBStructure dbStructure = new DBStructure(MyPalStorage.DBPath, "MyPal"); dbStructure.ProgressListenerEvent += new DBStructure.ProgressEventHandler(dbStructure_ProgressListenerEvent); Console.WriteLine("Loading database..."); bool structureCorrupted = false; try { dbStructure.LoadStructure(true); } catch (Exception) { structureCorrupted = true; } if (structureCorrupted || !AllTablesExist(dbStructure)) { Console.WriteLine("Rebuilding database structure..."); dbStructure.Shutdown(); MyPalStorage.CreateDatabase(); dbStructure = new DBStructure(MyPalStorage.DBPath, "MyPal"); dbStructure.LoadStructure(true); _forceRebuild = true; } if (_defrag) { Console.WriteLine("Defragmenting database..."); dbStructure.Defragment(); } else if (!dbStructure.IsDatabaseCorrect()) { Console.WriteLine("Database indexes are corrupt. Rebuilding..."); dbStructure.RebuildIndexes(); } else if (_forceRebuild) { Console.WriteLine("Performing forced rebuild of database indexes..."); dbStructure.RebuildIndexes(true); } else if (_lowCheck) { dbStructure.LowLevelCheck( ); return; } if (_dbdump) { Console.WriteLine("Dumping database..."); dbStructure.Dump(); } IDatabase db = dbStructure.OpenDatabase(); if (_calcSpace) { CalcSpace(db, "ResourceTypes"); CalcSpace(db, "PropTypes"); CalcSpace(db, "IntProps"); CalcSpace(db, "StringProps"); CalcSpace(db, "LongStringProps"); CalcSpace(db, "StringListProps"); CalcSpace(db, "DateProps"); CalcSpace(db, "BlobProps"); CalcSpace(db, "DoubleProps"); CalcSpace(db, "Resources"); CalcSpace(db, "Links"); return; } ResourceStoreRepair rsRepair = new ResourceStoreRepair(db); rsRepair.FixErrors = _fixErrors; rsRepair.DumpStructure = _dump; rsRepair.RepairProgress += new RepairProgressEventHandler(RsRepair_OnRepairProgress); rsRepair.Run(); }
protected void ReopenStorage() { MyPalStorage.CloseDatabase(); MyPalStorage.OpenDatabase(); _storage = MyPalStorage.Storage; }