Резервное копирование и миграция аккаунтов: Импорт/Экспорт, горячая миграция V1/DB
То, что вы действительно хотите «резервировать» — это не число квот, а refresh_token, позволяющий аккаунту снова войти. Этот урок объясняет несколько методов миграции Antigravity Tools: импорт/экспорт JSON, импорт из state.vscdb, импорт из каталога данных V1 и способ работы автоматической синхронизации.
Чему вы научитесь
- Экспортировать пул аккаунтов в один JSON-файл (содержащий только email + refresh_token)
- Импортировать этот JSON на новом компьютере для быстрого восстановления пула аккаунтов
- Импортировать «текущий вошедший аккаунт» напрямую из
state.vscdbAntigravity/IDE (поддерживается путь по умолчанию и пользовательский путь) - Автоматически сканировать и импортировать старые аккаунты из каталога данных V1
- Понимать, что именно делает «автоматическая синхронизация текущего аккаунта» и когда она пропускает
Текущие проблемы
- После переустановки системы/смены компьютера нужно заново добавлять пул аккаунтов, что стоит дорого
- Вы сменили вошедший аккаунт в Antigravity/IDE, но «текущий аккаунт» в Manager не изменился
- Ранее вы использовали V1/скриптовую версию, у вас только старые файлы данных, не знаете, можно ли напрямую мигрировать
Когда использовать этот метод
- Вы хотите перенести пул аккаунтов на другой компьютер (десктоп/сервер/контейнер)
- Вы используете Antigravity как «авторитетный вход», хотите, чтобы Manager автоматически синхронизировал текущий аккаунт
- Вы хотите перенести аккаунты из старой версии (каталог данных V1)
🎒 Подготовка
- Вы уже можете открыть Antigravity Tools и в пуле аккаунтов есть хотя бы один аккаунт
- Вы знаете, что данные аккаунтов — это чувствительная информация (особенно
refresh_token)
Напоминание о безопасности: относитесь к файлам резервных копий как к паролям
Экспортированный JSON-файл содержит refresh_token. Любой, кто его получит, может использовать его для обновления access token. Не загружайте файлы резервных копий на публичные ссылки облачных хранилищ, не отправляйте в группы, не коммитите в Git.
Основная идея
«Миграция» в Antigravity Tools — это по сути две вещи:
- Найти доступный
refresh_token - Использовать его для получения 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. - Если каталог по умолчанию не настроен, появится системное диалоговое окно сохранения для выбора пути.
Содержимое экспортированного файла примерно такое (каждый элемент в массиве содержит только необходимые поля):
[
{
"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):
~/Library/Application Support/Antigravity/User/globalStorage/state.vscdb%APPDATA%\Antigravity\User\globalStorage\state.vscdb~/.config/Antigravity/User/globalStorage/state.vscdbЧто вы должны увидеть:
- После успешного импорта этот аккаунт будет автоматически установлен как «текущий аккаунт» Manager
- Автоматически запустится обновление квоты
Шаг 4: Миграция из каталога данных V1 (импорт старой версии)
Зачем Если вы раньше использовали V1/скриптовую версию, Manager позволяет напрямую сканировать старый каталог данных и попробовать импорт.
Действие: на вкладке Import нажмите «Импорт V1».
Он будет искать этот путь в вашем домашнем каталоге (и файл индекса в нём):
~/.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 как к паролю, минимизируйте распространение, избегайте публичного доступа |
| Ошибка импорта JSON | JSON не массив, или у 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.tsx | 458-578 |
| Экспорт JSON аккаунтов на Dashboard | src/pages/Dashboard.tsx | 113-148 |
| Вкладка Import: кнопки импорта DB / Custom DB / V1 | src/components/accounts/AddAccountDialog.tsx | 491-539 |
| Добавление аккаунта: игнорировать email фронтенда, использовать refresh_token для получения реального email, автоматически обновлять квоту, горячая перезагрузка Proxy | src-tauri/src/commands/mod.rs | 19-60 |
| --- | --- | --- |
Импорт DB: извлечение refresh_token из state.vscdb (ItemTable + base64 + protobuf) | src-tauri/src/modules/migration.rs | 192-267 |
| --- | --- | --- |
| После импорта из DB автоматически установить как «текущий аккаунт» и обновить квоту | src-tauri/src/commands/mod.rs | 495-511 |
| auto_sync: сравнить refresh_token, если такой же пропустить; при изменении запустить импорт из DB | src-tauri/src/commands/mod.rs | 532-564 |
Фоновая задача фронтенда: периодический вызов syncAccountFromDb() по sync_interval | src/components/common/BackgroundTaskRunner.tsx | 43-72 |