Index: components/history/core/browser/history_database.cc |
diff --git a/components/history/core/browser/history_database.cc b/components/history/core/browser/history_database.cc |
index 2768a8bc91623ad2bb71f6944ca45de8ca898ec4..cd998db10c5bba2697b6c98f2153f57971e9ec00 100644 |
--- a/components/history/core/browser/history_database.cc |
+++ b/components/history/core/browser/history_database.cc |
@@ -36,7 +36,7 @@ namespace { |
// Current version number. We write databases at the "current" version number, |
// but any previous version that can read the "compatible" one can make do with |
// our database without *too* many bad effects. |
-const int kCurrentVersionNumber = 33; |
+const int kCurrentVersionNumber = 34; |
const int kCompatibleVersionNumber = 16; |
const char kEarlyExpirationThresholdKey[] = "early_expiration_threshold"; |
const int kMaxHostsInMemory = 10000; |
@@ -96,7 +96,7 @@ sql::InitStatus HistoryDatabase::Init(const base::FilePath& history_name) { |
return sql::INIT_FAILURE; |
if (!CreateURLTable(false) || !InitVisitTable() || |
!InitKeywordSearchTermsTable() || !InitDownloadTable() || |
- !InitSegmentTables()) |
+ !InitSegmentTables() || !InitSyncTable()) |
return sql::INIT_FAILURE; |
CreateMainURLIndex(); |
CreateKeywordSearchTermsIndices(); |
@@ -542,6 +542,19 @@ sql::InitStatus HistoryDatabase::EnsureCurrentVersion() { |
meta_table_.SetVersionNumber(cur_version); |
} |
+ if (cur_version == 33) { |
+ // AUTOINCREMENT is added to urls table PRIMARY KEY(id), need to recreate a |
+ // new table and copy all contents over. Also typed_url_sync_metadata and |
+ // autofill_model_type_state tables are introduced, no migration needed for |
+ // those two tables. |
+ if (!RecreateURLTableWithAllContents()) { |
+ LOG(WARNING) << "Unable to update history database to version 34."; |
+ return sql::INIT_FAILURE; |
+ } |
+ cur_version++; |
+ meta_table_.SetVersionNumber(cur_version); |
+ } |
+ |
// When the version is too old, we just try to continue anyway, there should |
// not be a released product that makes a database too old for us to handle. |
LOG_IF(WARNING, cur_version < GetCurrentVersion()) << |