How to Update TGArchiveConsole: The Complete Command-Verified Guide
If you’re running TGArchiveConsole to archive Telegram groups, you’ve probably searched how to update TGArchiveConsole and landed on a page that tells you “updates matter” without showing a single real command. This guide skips the filler. Below is exactly how to update TGArchiveConsole using all three real update methods, how to back up your data first, and how to fix the errors that actually happen after an update.
TGArchiveConsole (built on the open-source project tg-archive) is a Python command-line tool that syncs Telegram group messages and stores them as a browsable, searchable HTML archive on your own machine. Because it depends on Telegram’s MTProto protocol, and MTProto changes over time, staying current isn’t optional if you want reliable syncs.
Why You Need to Know How to Update TGArchiveConsole
Telegram updates its API regularly. When it does, tools built on top of it — including TGArchiveConsole — need to catch up. If you don’t know how to update TGArchiveConsole properly, you’ll eventually run into one of these:
- Syncs that silently return zero new messages
- Authentication failures when your session token expires against a newer API version
- Database errors when the local schema no longer matches what the updated code expects
- Broken exports (HTML/JSON) after dependency updates tgarchiveconsole set up
None of these show clear error messages pointing to “you need to update.” They just quietly stop working. That’s exactly why learning how to update TGArchiveConsole the right way — with a backup step built in — saves you hours versus troubleshooting a broken archive after the fact.
Before You Update: The Pre-Update Checklist
Skipping this step is how people lose archived data. Do these three things before touching anything else.
Step 1: Check Your Current Version
Open your terminal, navigate to your installation folder, and run:
python3 main.py --version
or, if you installed via pip:
pip show tg-archive
Compare the version number against the latest release listed at github.com/knadh/tg-archive. If they match, you’re already current and don’t need to proceed. If they don’t match, move to Step 2.
Step 2: Back Up Your Data

This is the step every other guide skips. Before you learn how to update TGArchiveConsole the “fast way,” copy these three items somewhere safe:
| File/Folder | Purpose | Why It Matters |
|---|---|---|
data.sqlite | Your archived message database | Update scripts can alter schema; a bad migration can corrupt this file |
config.yaml | Your Telegram API keys, channel list, and settings | Update may overwrite this or require new fields |
session.session | Your authenticated Telegram session | Prevents having to re-authenticate from scratch |
Copy them with a simple command:
cp data.sqlite config.yaml session.session ~/tgarchive-backup/
Do this every single time, not just for major version jumps. Even minor updates have broken configs before.
Step 3: Confirm Python Compatibility
TGArchiveConsole runs on Python and is tested against Python 3.13. Check your installed version:
python3 --version
If you’re running an older Python version, upgrade Python first — otherwise the update itself can fail with dependency errors. Also confirm you have enough free disk space, especially if your archive includes media files. Running out of space mid-update can leave your database in a broken, hard-to-recover state.
How to Update TGArchiveConsole: Three Real Methods
There are three legitimate ways to update TGArchiveConsole, depending on how you originally installed it. Use whichever matches your setup — don’t mix methods.
Method 1: Git Pull (For GitHub Clone Installations)
If you cloned the repository directly from GitHub, this is the cleanest way to update TGArchiveConsole because it pulls changes straight from the source.
cd ~/tg-archive
git status
git pull origin master
pip install -r requirements.txt --upgrade
The git status check first confirms you don’t have uncommitted local changes that git pull would overwrite. If you’ve customized any config templates, stash those changes before pulling.
Method 2: Pip Install/Upgrade (For Package Installations)
If you installed TGArchiveConsole via pip, this is the fastest method:
pip install --upgrade tg-archive
After running this, verify the new version installed correctly:
pip show tg-archive
This method is quicker than Git but gives you less control if a release includes config changes you need to review manually.
Method 3: Docker Rebuild (For Containerized Installations)
If you run TGArchiveConsole in Docker, updating means pulling the latest image and rebuilding your container:
docker pull knadh/tg-archive:latest
docker stop tgarchive-container
docker rm tgarchive-container
docker run -d --name tgarchive-container -v $(pwd)/data:/app/data knadh/tg-archive:latest
Make sure your volume mount (-v flag) points to the same data directory you backed up in Step 2 — otherwise you’ll start with an empty archive.
Comparing the Three Update Methods
| Method | Speed | Control | Best For |
|---|---|---|---|
| Git Pull | Medium | High — see every change before applying | Developers, customized setups |
| Pip Upgrade | Fast | Low — applies automatically | Simple installs, no custom code |
| Docker Rebuild | Medium | Medium — isolated environment | Server deployments, teams |
Knowing how to update TGArchiveConsole across all three methods means you’re not stuck if you switch installation types later — for example, moving from a local clone to a Dockerized production setup.
Verifying the Update Worked

Don’t assume success just because the command finished without errors. Confirm it properly:
- Run the version check command again and confirm the number matches the latest GitHub release
- Run a manual sync on one small test channel:
python3 main.py --sync
- Open the generated HTML archive and confirm new messages appear with correct timestamps
- Check the log output for authentication or dependency warnings
If all four checks pass, your update is complete and stable.
Troubleshooting Common Errors After Updating
This is where most guides on how to update TGArchiveConsole stop — right when the real problems start. Here’s what actually goes wrong and how to fix it.
| Symptom | Likely Cause | Fix |
|---|---|---|
ModuleNotFoundError after update | Dependencies didn’t reinstall correctly | Run pip install -r requirements.txt --force-reinstall |
| Sync returns zero new messages | Session token expired against new API version | Delete session.session and re-authenticate |
Database locked / sqlite3.OperationalError | Update ran while a sync process was still active | Fully stop the process, confirm no lock files remain, retry |
| Config errors on startup | New version expects fields not in your old config.yaml | Compare your config against the sample config in the new release, add missing fields |
| Docker container won’t start | Volume path mismatch after rebuild | Confirm -v flag points to your original data directory |
| Export files missing or malformed | Export module changed between versions | Check the changelog for export-related breaking changes, regenerate exports manually |
If you hit an error not listed here, check the GitHub Issues page for the exact error message before assuming it’s unique to your setup — most update-related bugs have already been reported and solved by someone else.
Rolling Back If the Update Breaks Something
Sometimes the answer to how to update TGArchiveConsole safely is knowing how to undo it. If a new version breaks your workflow:
- Git installs: Run
git logto find the previous commit hash, thengit checkout <commit-hash>to revert - Pip installs: Run
pip install tg-archive==<previous-version-number>to reinstall the exact prior version - Docker installs: Re-pull the previous image tag instead of
latest, e.g.docker pull knadh/tg-archive:v1.2.0
Then restore your backed-up data.sqlite, config.yaml, and session.session files from Step 2. This is exactly why the backup step isn’t optional — without it, a rollback only restores the code, not your data.
Best Practices for Future Updates

Once you’ve gone through the process once, keep these habits so future updates go smoothly:
- Back up your three key files before every update, not just major ones
- Check the changelog before updating, not after something breaks
- Update on a test copy of your archive first if you’re managing production data
- Keep a record of your current version number somewhere outside the tool itself
- Schedule updates during low-activity periods, not mid-sync
Following this pattern turns how to update TGArchiveConsole from a stressful troubleshooting session into a five-minute routine.
Frequently Asked Questions
How do I know if I need to update TGArchiveConsole?
Run pip show tg-archive or python3 main.py --version and compare the result to the latest release on the GitHub repository page.
Is it safe to update TGArchiveConsole without backing up first?
No. Updates can change the database schema or config format, and without a backup of data.sqlite and config.yaml, a failed update can mean lost archive data.
Which update method is fastest?
The pip upgrade method (pip install --upgrade tg-archive) is the fastest, but the Git pull method gives you more visibility into what changed before it’s applied.
Why did my sync stop working after updating?
This usually happens when your Telegram session token expires against the newer API version. Delete the session.session file and re-authenticate.
Can I roll back if a TGArchiveConsole update causes problems?
Yes. Use git checkout for a Git install, install a specific prior version with pip, or re-pull an older Docker image tag, then restore your backed-up data files.
Does updating TGArchiveConsole delete my existing archive?
Not by default, but a failed migration can corrupt data.sqlite if you haven’t backed it up. Always copy your data files before updating.
How often should I update TGArchiveConsole?
Check for updates monthly, or immediately if your syncs start failing, since that’s often a sign Telegram’s API has changed and the tool needs to catch up.