4

После повышения уровня Chromium с 34 до 35 удобство использования Chromium пошло вниз. Поэтому я решил понизить Chromium. К счастью, предыдущая версия Chromium все еще была где-то на моем диске, поэтому понижение версии (в ArchLinux) было так просто, как:

sudo pacman -U /var/cache/pacman/pkg/chromium-34.0.1847.137-1-x86_64.pkg.tar.xz

После выполнения предыдущей команды Chromium все-таки запустился, но, к сожалению, я продолжал глючить следующее сообщение при запуске:

Ваш профиль не может быть использован, потому что он из более новой версии Google Chrome. Некоторые функции могут быть недоступны. Укажите другой каталог профиля или используйте более новую версию Chrome.

Один из способов избавиться от этого сообщения - удалить ~/.config/chromium/Default/Web Data , но это также привело к исчезновению ключевых слов в моей поисковой системе.

Как я могу понизить Chromium без потери данных?

Примечание: я использую Linux, но эта проблема не зависит от платформы. Не стесняйтесь отвечать с точки зрения операционной системы, отличной от Linux, такой как Windows.

2 ответа2

8

Примечание. Закройте Chrome и создайте резервную копию своего профиля, прежде чем связываться с ним!

Web Data - это база данных SQLite, поэтому для ее открытия я использовал программу sqlite3 .

  1. Какая текущая версия базы данных "Веб-данные"? (запустите SELECT * from meta;)

    sqlite> SELECT * FROM meta; ID поставщика поиска по умолчанию | 34 last_compatible_version | 55 версия | 55 Встроенная версия ключевого слова | 70
  2. Выделенные строки в предыдущем выводе ссылаются на внутренние номера версий базы данных в Chromium. Для каждой версии вы можете найти соответствующие коды миграции в исходном коде Chromium (autofill_table.cc). В частности, взгляните на метод AutofillTable::MigrateToVersion. Так как моя версия базы данных 55, я посмотрел на "дело 55"

    case 55: * update_compatible_version = true; return MigrateToVersion55MergeAutofillDatesTable ();

    Узнав об этом методе, я был почти готов написать запрос SQLite, чтобы отменить миграцию.

  3. Используя знания предыдущего шага (и исходную схему из другой таблицы на другом компьютере), я построил следующий запрос (скопируйте и вставьте запрос в sqlite3):
    Примечание. Этот запрос относится к понижению версии Chrome с 35 до 34!

    CREATE TABLE autofill_v54 (
        name VARCHAR,
        value VARCHAR,
        value_lower VARCHAR,
        pair_id INTEGER PRIMARY KEY,
        count INTEGER DEFAULT 1);
    CREATE TABLE autofill_dates (
        pair_id INTEGER DEFAULT 0,
        date_created INTEGER DEFAULT 0);        
    
    INSERT INTO autofill_v54 (
        name,
        value,
        value_lower,
        count
    ) SELECT name, value, value_lower, count FROM autofill;
    
    INSERT INTO autofill_dates (
        pair_id,
        date_created
    ) SELECT pair_id, date_created
      FROM autofill_v54 a54 JOIN autofill a USING (name, value);
    
    DROP TABLE autofill;
    ALTER TABLE autofill_v54 RENAME TO autofill;
    
    CREATE INDEX autofill_name ON autofill (name);
    CREATE INDEX autofill_name_value_lower ON autofill (name, value_lower);
    
  4. После отмены миграции вы можете безопасно снизить версию базы данных:

    UPDATE meta SET value='54' WHERE key='version' OR
                                     key = 'last_compatible_version';
    
  5. Закройте базу данных с помощью .quit

Выполнив все эти шаги, я запустил Chromium, всплывающих окон не было, и все данные профиля остались без изменений!

0

Подтверждаю: решение с sqlite3 работает отлично!

Я пользователь Ubuntu (14.04), но я попробовал этот метод не с хромом, а с google-chrome-stable.

Я понизил Chrome с 35 до 34, потому что в выпуске 35 нет способа запустить Java-апплет. :-(

sudo apt-get purge google-chrome-stable
sudo rm -f /etc/apt/sources.list.d/google-chrome.list*
sudo apt-get update
cd ~/Downloads
wget http://95.31.35.30/chrome/pool/main/g/google-chrome-stable/google-chrome-stable_34.0.1847.137-1_amd64.deb

При удалении этого источника Google-Chrome больше не будет обновляться автоматически. Я установил выпуск 34 от nautilus с помощью gdebi. Вы можете установить gdebi с помощью:

sudo apt-get install gdebi

Проблема начинается здесь ... Сообщение = 'Ваш профиль не может быть использован, потому что он из более новой ...'
Вы можете установить sqlite3 следующим образом:

sudo apt-get install sqlite3

Чтобы выполнить решение выше (предоставлено Робом В.), выполните:

cd ~/.config/google-chrome/Default
sqlite3 Web\ Data

После этого просто скопируйте / вставьте шаги 1, 3, 4, 5, данные Робом У.
Надеюсь, это поможет. ;-)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .