mirror of
https://github.com/go-gitea/gitea.git
synced 2026-03-13 19:37:47 -05:00
Learnings from Manual Migration of Gitea Data to Fresh Gitea Instance #14139
Open
opened 2025-11-02 11:04:09 -06:00 by GiteaMirror
·
6 comments
No Branch/Tag Specified
main
release/v1.25
release/v1.24
release/v1.23
release/v1.22
release/v1.21
release/v1.20
release/v1.19
release/v1.18
release/v1.17
release/v1.16
release/v1.15
release/v1.14
release/v1.13
release/v1.12
release/v1.11
release/v1.10
release/v1.9
release/v1.8
v1.25.3
v1.25.2
v1.25.1
v1.25.0
v1.24.7
v1.25.0-rc0
v1.26.0-dev
v1.24.6
v1.24.5
v1.24.4
v1.24.3
v1.24.2
v1.24.1
v1.24.0
v1.23.8
v1.24.0-rc0
v1.25.0-dev
v1.23.7
v1.23.6
v1.23.5
v1.23.4
v1.23.3
v1.23.2
v1.23.1
v1.23.0
v1.23.0-rc0
v1.24.0-dev
v1.22.6
v1.22.5
v1.22.4
v1.22.3
v1.22.2
v1.22.1
v1.22.0
v1.23.0-dev
v1.22.0-rc1
v1.21.11
v1.22.0-rc0
v1.21.10
v1.21.9
v1.21.8
v1.21.7
v1.21.6
v1.21.5
v1.21.4
v1.21.3
v1.21.2
v1.20.6
v1.21.1
v1.21.0
v1.21.0-rc2
v1.21.0-rc1
v1.20.5
v1.22.0-dev
v1.21.0-rc0
v1.20.4
v1.20.3
v1.20.2
v1.20.1
v1.20.0
v1.19.4
v1.21.0-dev
v1.20.0-rc2
v1.20.0-rc1
v1.20.0-rc0
v1.19.3
v1.19.2
v1.19.1
v1.19.0
v1.19.0-rc1
v1.20.0-dev
v1.19.0-rc0
v1.18.5
v1.18.4
v1.18.3
v1.18.2
v1.18.1
v1.18.0
v1.17.4
v1.18.0-rc1
v1.19.0-dev
v1.18.0-rc0
v1.17.3
v1.17.2
v1.17.1
v1.17.0
v1.17.0-rc2
v1.16.9
v1.17.0-rc1
v1.18.0-dev
v1.16.8
v1.16.7
v1.16.6
v1.16.5
v1.16.4
v1.16.3
v1.16.2
v1.16.1
v1.16.0
v1.15.11
v1.17.0-dev
v1.16.0-rc1
v1.15.10
v1.15.9
v1.15.8
v1.15.7
v1.15.6
v1.15.5
v1.15.4
v1.15.3
v1.15.2
v1.15.1
v1.14.7
v1.15.0
v1.15.0-rc3
v1.14.6
v1.15.0-rc2
v1.14.5
v1.16.0-dev
v1.15.0-rc1
v1.14.4
v1.14.3
v1.14.2
v1.14.1
v1.14.0
v1.13.7
v1.14.0-rc2
v1.13.6
v1.13.5
v1.14.0-rc1
v1.15.0-dev
v1.13.4
v1.13.3
v1.13.2
v1.13.1
v1.13.0
v1.12.6
v1.13.0-rc2
v1.14.0-dev
v1.13.0-rc1
v1.12.5
v1.12.4
v1.12.3
v1.12.2
v1.12.1
v1.11.8
v1.12.0
v1.11.7
v1.12.0-rc2
v1.11.6
v1.12.0-rc1
v1.13.0-dev
v1.11.5
v1.11.4
v1.11.3
v1.10.6
v1.12.0-dev
v1.11.2
v1.10.5
v1.11.1
v1.10.4
v1.11.0
v1.11.0-rc2
v1.10.3
v1.11.0-rc1
v1.10.2
v1.10.1
v1.10.0
v1.9.6
v1.9.5
v1.10.0-rc2
v1.11.0-dev
v1.10.0-rc1
v1.9.4
v1.9.3
v1.9.2
v1.9.1
v1.9.0
v1.9.0-rc2
v1.10.0-dev
v1.9.0-rc1
v1.8.3
v1.8.2
v1.8.1
v1.8.0
v1.8.0-rc3
v1.7.6
v1.8.0-rc2
v1.7.5
v1.8.0-rc1
v1.9.0-dev
v1.7.4
v1.7.3
v1.7.2
v1.7.1
v1.7.0
v1.7.0-rc3
v1.6.4
v1.7.0-rc2
v1.6.3
v1.7.0-rc1
v1.7.0-dev
v1.6.2
v1.6.1
v1.6.0
v1.6.0-rc2
v1.5.3
v1.6.0-rc1
v1.6.0-dev
v1.5.2
v1.5.1
v1.5.0
v1.5.0-rc2
v1.5.0-rc1
v1.5.0-dev
v1.4.3
v1.4.2
v1.4.1
v1.4.0
v1.4.0-rc3
v1.4.0-rc2
v1.3.3
v1.4.0-rc1
v1.3.2
v1.3.1
v1.3.0
v1.3.0-rc2
v1.3.0-rc1
v1.2.3
v1.2.2
v1.2.1
v1.2.0
v1.2.0-rc3
v1.2.0-rc2
v1.1.4
v1.2.0-rc1
v1.1.3
v1.1.2
v1.1.1
v1.1.0
v1.0.2
v1.0.1
v1.0.0
v0.9.99
Labels
Clear labels
$20
$250
$50
$500
backport/done
💎 Bounty
docs-update-needed
good first issue
hacktoberfest
issue/bounty
issue/confirmed
issue/critical
issue/duplicate
issue/needs-feedback
issue/not-a-bug
issue/regression
issue/stale
issue/workaround
lgtm/need 2
modifies/api
modifies/translation
outdated/backport/v1.18
outdated/theme/markdown
outdated/theme/timetracker
performance/bigrepo
performance/cpu
performance/memory
performance/speed
pr/breaking
proposal/accepted
proposal/rejected
pr/wip
pull-request
reviewed/wontfix
💰 Rewarded
skip-changelog
status/blocked
topic/accessibility
topic/api
topic/authentication
topic/build
topic/code-linting
topic/commit-signing
topic/content-rendering
topic/deployment
topic/distribution
topic/federation
topic/gitea-actions
topic/issues
topic/lfs
topic/mobile
topic/moderation
topic/packages
topic/pr
topic/projects
topic/repo
topic/repo-migration
topic/security
topic/theme
topic/ui
topic/ui-interaction
topic/ux
topic/webhooks
topic/wiki
type/bug
type/deprecation
type/docs
type/enhancement
type/feature
type/miscellaneous
type/proposal
type/question
type/refactoring
type/summary
type/testing
type/upstream
Mirrored from GitHub Pull Request
No Label
type/proposal
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/gitea#14139
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @theAkito on GitHub (Feb 14, 2025).
Feature Description
Migrated from Gitea ~1.18 to 1.23.3. Plain Standard Kubernetes Single-Node Installations.
Tasks
gitea-repositoriesis not found, then error out. Do not just show no repositories, even though the database knows better, that there should be repositories, but they are missing.lfsfolder is not found, stop deleting all repositories from database!! Error out and tell the user, that expected LFS files are missing!lfsfolder is not found, stop wiping repositories, that do not even uselfs, at all. Just error out on those, which actually use LFS.akito/myrepoand the database already knowsakito/myrepoat a differentgitea-repositoriesfolder, than optionally merge the metadata from the "old" repo to the "new" one.Related
https://forum.gitea.com/t/migrating-repository-folder/10775
Additional Information
Since adopting orphaned repositories is half broken in Gitea, I decided to just 1:1 migrate repositories and LFS files, so I don't have to deal with the problems associated with adoption of orphans.
@wxiaoguang commented on GitHub (Feb 15, 2025):
IIRC it should only use 2-3 steps?
datato new server andchownapp.inito new server and update db connection/paths@theAkito commented on GitHub (Feb 15, 2025):
Not at all.
I use Ansible to manage app configurations for the installation via Helm Charts on Kubernetes.
My
app.iniis set declaratively, as are all other settings, via Ansible and ultimately via Helm Chart.If you check out the official Gitea Helm Chart, over the versions, many key-value Settings have changed paths, names, etc.
The same way, the default location for
gitea-repositorieshas already changed at least once over the versions, which is related to core Gitea, not the Helm Chart, as far as I know.The locations for other directories in
datahave already changed, as well. I needed to move them around, until I found the correct, "new", location...So, just copying all
dataandchownwill never be sufficient, if your Gitea data structure is at least 6 years old.Additionally,
app.inihas deprecated some features, added new ones. So, I had to adjust it and I also extended it with new settings, which improve my Gitea usage experience.That said, I tried to change the
gitea-repositoriespath in theapp.ini, which caused most the issues, shown in the original issue description. Ultimately, I decided to leave thegitea-repositories&lfspaths as-is, as changing thegitea-repositorieshas too many advantages, as explained previously.@wxiaoguang commented on GitHub (Feb 15, 2025):
So it's not simply a "migration". It contains 2 parts:
(or in reverse order: migration to a new server with the same version, then upgrade to the latest version)
@theAkito commented on GitHub (Feb 15, 2025):
The title of this issue says, that I migrated Gitea Data to a Fresh Gitea Instance...
There was no "upgrade", as in upgrade. I migrated data from an older version to a newer version. A simple upgrade wouldn't have caused the path issues with
gitea-repositores, for example.This is a migration. Not purely an "upgrade". In fact, I wouldn't say the name "upgrade", at all. It was migrated from an older version, to a newer version. It's not an "upgrade", it's a big migration.
@wxiaoguang commented on GitHub (Feb 15, 2025):
I see, IMO it (to a fresh instance) is not a widely-used approach ...... (TBH I don't quite understand why it should do so, it seems easier to copy the old data to a new server and run the old version first then upgrade to a newer version).
@theAkito commented on GitHub (Feb 15, 2025):
I migrated the data to a new location and improved the setup of the Gitea Helm Chart by a lot. I basically re-vamped the whole installation. It would be a widely-used approach, if there were more people using Gitea as long as I have.
That said, I'm not sure what your point with all that is, because it has little to do with the original issue. The original problems described in this issue, are still valid. For example, all the communication issues in the Web UI about the actual problems behind the scenes are perfectly valid issues to work on. It does not matter, whether it was triggered by a major migration, in this specific case.