[tracker/urho-sync] Fixed restore on startup of meta.db is missing and meta-backup.db isn't
- From: Philip Van Hoof <pvanhoof src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [tracker/urho-sync] Fixed restore on startup of meta.db is missing and meta-backup.db isn't
- Date: Mon, 24 Aug 2009 13:58:13 +0000 (UTC)
commit 4c59007564f1138c01a66e2e45f891d157da03e8
Author: Philip Van Hoof <philip codeminded be>
Date: Mon Aug 24 15:57:19 2009 +0200
Fixed restore on startup of meta.db is missing and meta-backup.db isn't
src/libtracker-db/tracker-db-manager.c | 31 ++++++++++++++++++++++---------
1 files changed, 22 insertions(+), 9 deletions(-)
---
diff --git a/src/libtracker-db/tracker-db-manager.c b/src/libtracker-db/tracker-db-manager.c
index e04255c..c22f48d 100644
--- a/src/libtracker-db/tracker-db-manager.c
+++ b/src/libtracker-db/tracker-db-manager.c
@@ -865,7 +865,7 @@ db_interface_create (TrackerDB db)
}
static void
-db_manager_remove_all (gboolean rm_backup_and_log)
+db_manager_remove_all (gboolean rm_backup_and_log, gboolean not_meta)
{
guint i;
@@ -875,6 +875,11 @@ db_manager_remove_all (gboolean rm_backup_and_log)
* calculate the absolute directories here.
*/
for (i = 1; i < G_N_ELEMENTS (dbs); i++) {
+
+ if (not_meta && i == TRACKER_DB_METADATA) {
+ continue;
+ }
+
g_message (" Removing database:'%s'",
dbs[i].abs_filename);
g_unlink (dbs[i].abs_filename);
@@ -1040,7 +1045,7 @@ tracker_db_manager_ensure_locale (void)
}
static gboolean
-check_meta_backup (void)
+check_meta_backup (gboolean *did_copy)
{
const gchar *meta_filename;
gboolean retval = FALSE;
@@ -1063,8 +1068,16 @@ check_meta_backup (void)
backup = tracker_db_backup_file (NULL, TRACKER_DB_BACKUP_META_FILENAME);
if (g_file_query_exists (backup, NULL)) {
- g_file_move (backup, file, G_FILE_COPY_OVERWRITE, NULL,
- NULL, NULL, NULL);
+ GError *error = NULL;
+
+ g_file_copy (backup, file, G_FILE_COPY_OVERWRITE,
+ NULL, NULL, NULL, &error);
+
+ if (!error && did_copy) {
+ *did_copy = TRUE;
+ }
+
+ g_clear_error (&error);
}
retval = TRUE;
@@ -1089,7 +1102,7 @@ tracker_db_manager_init (TrackerDBManagerFlags flags,
gchar *filename;
const gchar *dir;
const gchar *env_path;
- gboolean need_reindex;
+ gboolean need_reindex, did_copy = FALSE;
guint i;
if (first_time) {
@@ -1190,7 +1203,7 @@ tracker_db_manager_init (TrackerDBManagerFlags flags,
}
if (need_journal) {
- *need_journal = check_meta_backup ();
+ *need_journal = check_meta_backup (&did_copy);
}
/* If we are just initializing to remove the databases,
@@ -1225,11 +1238,11 @@ tracker_db_manager_init (TrackerDBManagerFlags flags,
* will cause errors and do nothing.
*/
g_message ("Cleaning up database files for reindex");
- db_manager_remove_all (FALSE);
+ db_manager_remove_all (FALSE, did_copy);
/* In cases where we re-init this module, make sure
* we have cleaned up the ontology before we load all
- * new databases.
+ * new databases.
*/
tracker_ontology_shutdown ();
@@ -1388,7 +1401,7 @@ tracker_db_manager_remove_all (gboolean rm_backup_and_log)
{
g_return_if_fail (initialized != FALSE);
- db_manager_remove_all (rm_backup_and_log);
+ db_manager_remove_all (rm_backup_and_log, FALSE);
}
void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]