Skip to content

Резервное копирование и миграция аккаунтов: Импорт/Экспорт, горячая миграция V1/DB

То, что вы действительно хотите «резервировать» — это не число квот, а refresh_token, позволяющий аккаунту снова войти. Этот урок объясняет несколько методов миграции Antigravity Tools: импорт/экспорт JSON, импорт из state.vscdb, импорт из каталога данных V1 и способ работы автоматической синхронизации.

Чему вы научитесь

  • Экспортировать пул аккаунтов в один JSON-файл (содержащий только email + refresh_token)
  • Импортировать этот JSON на новом компьютере для быстрого восстановления пула аккаунтов
  • Импортировать «текущий вошедший аккаунт» напрямую из state.vscdb Antigravity/IDE (поддерживается путь по умолчанию и пользовательский путь)
  • Автоматически сканировать и импортировать старые аккаунты из каталога данных V1
  • Понимать, что именно делает «автоматическая синхронизация текущего аккаунта» и когда она пропускает

Текущие проблемы

  • После переустановки системы/смены компьютера нужно заново добавлять пул аккаунтов, что стоит дорого
  • Вы сменили вошедший аккаунт в Antigravity/IDE, но «текущий аккаунт» в Manager не изменился
  • Ранее вы использовали V1/скриптовую версию, у вас только старые файлы данных, не знаете, можно ли напрямую мигрировать

Когда использовать этот метод

  • Вы хотите перенести пул аккаунтов на другой компьютер (десктоп/сервер/контейнер)
  • Вы используете Antigravity как «авторитетный вход», хотите, чтобы Manager автоматически синхронизировал текущий аккаунт
  • Вы хотите перенести аккаунты из старой версии (каталог данных V1)

🎒 Подготовка

  • Вы уже можете открыть Antigravity Tools и в пуле аккаунтов есть хотя бы один аккаунт
  • Вы знаете, что данные аккаунтов — это чувствительная информация (особенно refresh_token)

Напоминание о безопасности: относитесь к файлам резервных копий как к паролям

Экспортированный JSON-файл содержит refresh_token. Любой, кто его получит, может использовать его для обновления access token. Не загружайте файлы резервных копий на публичные ссылки облачных хранилищ, не отправляйте в группы, не коммитите в Git.

Основная идея

«Миграция» в Antigravity Tools — это по сути две вещи:

  1. Найти доступный refresh_token
  2. Использовать его для получения access token, запросить у Google реальный email и записать аккаунт в локальный пул

Оно предоставляет три входа:

  • Импорт/экспорт JSON: подходит, когда вы хотите сделать «контролируемую резервную копию»
  • Импорт из DB: подходит, когда вы рассматриваете состояние входа Antigravity/IDE как авторитетный источник (по умолчанию ищет state.vscdb, также поддерживает ручной выбор файла)
  • Импорт V1: подходит для автоматического сканирования и миграции из старого каталога данных

Ещё есть «автоматическая синхронизация»: она периодически считывает refresh_token из DB, если он отличается от текущего аккаунта Manager, автоматически выполняет импорт из DB; если такой же — пропускает (экономит трафик).

Пошаговое руководство

Шаг 1: Экспорт пула аккаунтов (резервная копия JSON)

Зачем Это самый стабильный и контролируемый способ миграции. Получив один файл, вы можете восстановить пул аккаунтов на другом компьютере.

Действие: перейдите на страницу Accounts, нажмите кнопку экспорта.

  • Если вы настроили default_export_path в настройках, экспорт напрямую запишется в этот каталог и будет использовать имя файла antigravity_accounts_YYYY-MM-DD.json.
  • Если каталог по умолчанию не настроен, появится системное диалоговое окно сохранения для выбора пути.

Содержимое экспортированного файла примерно такое (каждый элемент в массиве содержит только необходимые поля):

json
[
  {
    "email": "[email protected]",
    "refresh_token": "1//xxxxxxxxxxxxxxxxxxxxxxxx"
  },
  {
    "email": "[email protected]",
    "refresh_token": "1//yyyyyyyyyyyyyyyyyyyyyyyy"
  }
]

Что вы должны увидеть: На странице появляется сообщение об успешном экспорте и отображается путь сохранения.

Шаг 2: Импорт JSON на новом компьютере (восстановление пула аккаунтов)

Зачем Импорт вызовет по очереди логику «добавления аккаунта», использует refresh_token для получения реального email и записи в пул аккаунтов.

Действие: всё ещё на странице Accounts, нажмите «Импорт JSON», выберите только что экспортированный файл.

Требования к формату (минимум 1 действительная запись):

  • Должен быть массив JSON
  • Система импортирует только записи, содержащие refresh_token и начинающиеся с 1//

Что вы должны увидеть: После импорта в списке аккаунтов появляются импортированные аккаунты.

Если при импорте Proxy запущен

После каждого успешного «добавления аккаунта» бэкенд пытается перезагрузить пул токенов прокси, чтобы новый аккаунт сразу生效.

Шаг 3: Импорт «текущего вошедшего аккаунта» из state.vscdb

Зачем Иногда вы не хотите поддерживать файлы резервных копий, а хотите «использовать состояние входа Antigravity/IDE как авторитет». Импорт из DB подготовлен для этого сценария.

Действие: перейдите на страницу Accounts, нажмите Add Account, переключитесь на вкладку Import:

  • Нажмите «Импорт из базы данных» (использует путь DB по умолчанию)
  • Или нажмите «Custom DB (state.vscdb)» для ручного выбора файла *.vscdb

Путь DB по умолчанию кроссплатформенный (также приоритетно распознаёт --user-data-dir или portable mode):

text
~/Library/Application Support/Antigravity/User/globalStorage/state.vscdb
text
%APPDATA%\Antigravity\User\globalStorage\state.vscdb
text
~/.config/Antigravity/User/globalStorage/state.vscdb

Что вы должны увидеть:

  • После успешного импорта этот аккаунт будет автоматически установлен как «текущий аккаунт» Manager
  • Автоматически запустится обновление квоты

Шаг 4: Миграция из каталога данных V1 (импорт старой версии)

Зачем Если вы раньше использовали V1/скриптовую версию, Manager позволяет напрямую сканировать старый каталог данных и попробовать импорт.

Действие: на вкладке Import нажмите «Импорт V1».

Он будет искать этот путь в вашем домашнем каталоге (и файл индекса в нём):

text
~/.antigravity-agent/
  - antigravity_accounts.json
  - accounts.json

Что вы должны увидеть: После импорта аккаунты появляются в списке; если файл индекса не найден, бэкенд вернёт ошибку V1 account data file not found.

Шаг 5 (опционально): Включите «автоматическую синхронизацию текущего аккаунта»

Зачем Когда вы переключаете вошедший аккаунт в Antigravity/IDE, Manager может через фиксированный интервал проверить, изменился ли refresh_token в DB, и при изменении автоматически импортировать.

Действие: перейдите в Settings, включите auto_sync и установите sync_interval (единица: секунды).

Что вы должны увидеть: После включения сразу выполнится одна синхронизация; затем периодически по интервалу. Если refresh_token в DB такой же, как у текущего аккаунта, он пропустит, не будет повторно импортировать.

Контрольные точки ✅

  • В списке Accounts вы видите импортированные аккаунты
  • Вы видите, что «текущий аккаунт» переключился на желаемый (при импорте из DB автоматически устанавливается как текущий)
  • После запуска Proxy новые импортированные аккаунты могут нормально использоваться для запросов (ориентируйтесь на фактические результаты вызова)

Частые ошибки

СитуацияЧто вы можете сделать (❌)Рекомендуемый подход (✓)
Безопасность файла резервной копииОтправляете экспортированный JSON как обычный файл конфигурацииОтноситесь к JSON как к паролю, минимизируйте распространение, избегайте публичного доступа
Ошибка импорта JSONJSON не массив, или у refresh_token нет префикса 1//Используйте JSON, экспортированный этим проектом, как шаблон, сохраняйте имена полей и структуру одинаковыми
Импорт из DB не находит данныеAntigravity ни разу не входил, или в DB нет jetskiStateSync.agentManagerInitStateСначала подтвердите, что Antigravity/IDE вошёл, затем попробуйте импортировать; при необходимости используйте Custom DB для выбора правильного файла
Аккаунты недоступны после импорта V1Старый refresh_token недействителенУдалите этот аккаунт и добавьте снова через OAuth/новый refresh_token (ориентируйтесь на сообщение об ошибке)
auto_sync слишком частоsync_interval установлен очень маленьким, часто сканируется DBРассматривайте это как «следование состоянию», установите интервал на приемлемую частоту

Итог урока

  • Экспорт/импорт JSON — самый контролируемый способ миграции: в файле резервной копии сохраняется только email + refresh_token
  • Импорт из DB подходит для «с учётом текущего вошедшего аккаунта Antigravity/IDE» и автоматически устанавливается как текущий аккаунт Manager
  • Импорт V1 сканирует ~/.antigravity-agent и совместим с несколькими старыми форматами
  • auto_sync сравнивает refresh_token; если такой же, пропускает, не будет повторно импортировать

Предпросмотр следующего урока

В следующем уроке мы начнём реально использовать «мигрированный пул аккаунтов»: Запуск локального прокси и подключение первого клиента (healthz + конфигурация SDK).

Вы узнаете:

  • Как запустить/остановить Proxy и использовать /healthz для минимальной проверки
  • Как настроить Base URL в SDK/клиенте

Приложение: Справочник по исходному коду

Нажмите, чтобы раскрыть расположение исходного кода

Обновлено: 2026-01-23

ФункцияПуть к файлуСтроки
Экспорт/импорт JSON Accounts (save_text_file / read_text_file)src/pages/Accounts.tsx458-578
Экспорт JSON аккаунтов на Dashboardsrc/pages/Dashboard.tsx113-148
Вкладка Import: кнопки импорта DB / Custom DB / V1src/components/accounts/AddAccountDialog.tsx491-539
Добавление аккаунта: игнорировать email фронтенда, использовать refresh_token для получения реального email, автоматически обновлять квоту, горячая перезагрузка Proxysrc-tauri/src/commands/mod.rs19-60
---------
Импорт DB: извлечение refresh_token из state.vscdb (ItemTable + base64 + protobuf)src-tauri/src/modules/migration.rs192-267
---------
После импорта из DB автоматически установить как «текущий аккаунт» и обновить квотуsrc-tauri/src/commands/mod.rs495-511
auto_sync: сравнить refresh_token, если такой же пропустить; при изменении запустить импорт из DBsrc-tauri/src/commands/mod.rs532-564
Фоновая задача фронтенда: периодический вызов syncAccountFromDb() по sync_intervalsrc/components/common/BackgroundTaskRunner.tsx43-72