Gitea 1.23.8 updates migration version on failed migration #14485

Closed
opened 2025-11-02 11:14:13 -06:00 by GiteaMirror · 10 comments
Owner

Originally created by @caerbannogwhite on GitHub (May 13, 2025).

Description

Trying to migrate Gitea from 1.22.6 to 1.23.8 (see #34275 ) on Windows, SQL Server 2019 (version 15.0.2130.3), I got the same error reported in #34275 .

Restoring Gitea 1.22.6, failed, and the log showed that the migration version has been changed to 301 (expecting version 299).

Gitea Version

1.23.8

Can you reproduce the bug on the Gitea demo site?

No

Log Gist

2025/05/13 21:37:42 cmd/web.go:194:serveInstalled() [I] PING DATABASE mssql 2025/05/13 21:37:42 ...dels/db/collation.go:185:preprocessDatabaseCollation() [W] Current database is using a case-insensitive collation "Latin1_General_CI_AS", although Gitea could work with it, there might be some rare cases which don't work as expected. 2025/05/13 21:37:42 routers/common/db.go:31:InitDBEngine() [W] Table version Column version db default is NULL, struct default is 2025/05/13 21:37:42 ...ations/migrations.go:675:Migrate() [F] Migration Error: Your database (migration version: 302) is for a newer Gitea, you can not use the newer database for this old Gitea release (299). Gitea will exit to keep your database safe and unchanged. Please use the correct Gitea release, do not change the migration version manually (incorrect manual operation may lose data). If you are in development and really know what you're doing, you can force changing the migration version by executing: UPDATE version SET version=299 WHERE id=1;

Screenshots

No response

Git Version

No response

Operating System

Windows 10 Pro x64

How are you running Gitea?

Self-hosted, using Windows services

Database

MSSQL

Originally created by @caerbannogwhite on GitHub (May 13, 2025). ### Description Trying to migrate Gitea from 1.22.6 to 1.23.8 (see #34275 ) on Windows, SQL Server 2019 (version 15.0.2130.3), I got the same error reported in #34275 . Restoring Gitea 1.22.6, failed, and the log showed that the migration version has been changed to 301 (expecting version 299). ### Gitea Version 1.23.8 ### Can you reproduce the bug on the Gitea demo site? No ### Log Gist 2025/05/13 21:37:42 cmd/web.go:194:serveInstalled() [I] PING DATABASE mssql 2025/05/13 21:37:42 ...dels/db/collation.go:185:preprocessDatabaseCollation() [W] Current database is using a case-insensitive collation "Latin1_General_CI_AS", although Gitea could work with it, there might be some rare cases which don't work as expected. 2025/05/13 21:37:42 routers/common/db.go:31:InitDBEngine() [W] Table version Column version db default is NULL, struct default is 2025/05/13 21:37:42 ...ations/migrations.go:675:Migrate() [F] Migration Error: Your database (migration version: 302) is for a newer Gitea, you can not use the newer database for this old Gitea release (299). Gitea will exit to keep your database safe and unchanged. Please use the correct Gitea release, do not change the migration version manually (incorrect manual operation may lose data). If you are in development and really know what you're doing, you can force changing the migration version by executing: UPDATE version SET version=299 WHERE id=1; ### Screenshots _No response_ ### Git Version _No response_ ### Operating System Windows 10 Pro x64 ### How are you running Gitea? Self-hosted, using Windows services ### Database MSSQL
GiteaMirror added the type/bug label 2025-11-02 11:14:13 -06:00
Author
Owner

@caerbannogwhite commented on GitHub (May 13, 2025):

Is manually changing the version back to 299 enough (seems to work fine), or might that cause further issues on the next migration?
What other changes have been made from 1.22 to 1.23?

@caerbannogwhite commented on GitHub (May 13, 2025): Is manually changing the version back to 299 enough (seems to work fine), or might that cause further issues on the next migration? What other changes have been made from 1.22 to 1.23?
Author
Owner

@lunny commented on GitHub (May 13, 2025):

Is manually changing the version back to 299 enough (seems to work fine), or might that cause further issues on the next migration? What other changes have been made from 1.22 to 1.23?

I don't think it will work. Some database indexes will be missed. It may result duplicated records or query performances problems.

@lunny commented on GitHub (May 13, 2025): > Is manually changing the version back to 299 enough (seems to work fine), or might that cause further issues on the next migration? What other changes have been made from 1.22 to 1.23? I don't think it will work. Some database indexes will be missed. It may result duplicated records or query performances problems.
Author
Owner

@caerbannogwhite commented on GitHub (May 14, 2025):

I've been looking at migration from 299 to 301 included, and it seems that the only changes are about the nullability of columns.

https://github.com/go-gitea/gitea/blob/main/models/migrations/v1_23/v299.go
https://github.com/go-gitea/gitea/blob/main/models/migrations/v1_23/v300.go
https://github.com/go-gitea/gitea/blob/main/models/migrations/v1_23/v301.go

BTW, having version 299 on the db means that migration 299 has not been applied yet? Otherwise, I can't explain why the migrations for version 1.23 start at 299, but Gitea 1.22 complained about a version greater than that number.

There's one thing I just realized might be relevant to #34275 : a few months ago, I migrated the DB from MySQL to SQL Server 2019.

@caerbannogwhite commented on GitHub (May 14, 2025): I've been looking at migration from 299 to 301 included, and it seems that the only changes are about the nullability of columns. https://github.com/go-gitea/gitea/blob/main/models/migrations/v1_23/v299.go https://github.com/go-gitea/gitea/blob/main/models/migrations/v1_23/v300.go https://github.com/go-gitea/gitea/blob/main/models/migrations/v1_23/v301.go BTW, having version 299 on the db means that migration 299 has not been applied yet? Otherwise, I can't explain why the migrations for version 1.23 start at 299, but Gitea 1.22 complained about a version greater than that number. There's one thing I just realized might be relevant to #34275 : a few months ago, I migrated the DB from MySQL to SQL Server 2019.
Author
Owner

@wxiaoguang commented on GitHub (May 14, 2025):

BTW, having version 299 on the db means that migration 299 has not been applied yet?

database version 299 means migration 298 has been applied, but not migration 299

Refactor the DB migration system slightly (#32344)

Image

@wxiaoguang commented on GitHub (May 14, 2025): > BTW, having version 299 on the db means that migration 299 has not been applied yet? database version 299 means migration 298 has been applied, but not migration 299 Refactor the DB migration system slightly (#32344) ![Image](https://github.com/user-attachments/assets/9dfea584-289a-429c-9f72-7d466d04b066)
Author
Owner

@caerbannogwhite commented on GitHub (May 14, 2025):

That's interesting because I discovered (by comparing the schema with a backup) that these are the only changes:

  • oauth2_application
    Image

  • protected_branch
    Image

while the changes to issue and comment from migration 299 seem to have already been applied.
I wonder if migration 299 was applied when I tried to upgrade to 1.23.7, but in that case, the version number was not incremented.

@caerbannogwhite commented on GitHub (May 14, 2025): That's interesting because I discovered (by comparing the schema with a backup) that these are the only changes: - `oauth2_application` ![Image](https://github.com/user-attachments/assets/9e206270-4217-4d32-936f-36a672fc389e) - `protected_branch` ![Image](https://github.com/user-attachments/assets/537bbfef-c255-43d8-a240-c6b713b0feaa) while the changes to `issue` and `comment` from migration 299 seem to have already been applied. I wonder if migration 299 was applied when I tried to upgrade to 1.23.7, but in that case, the version number was not incremented.
Author
Owner

@wxiaoguang commented on GitHub (May 15, 2025):

That's too complex ......... I am not sure what we are talking about. In short:

  1. If a upgrade fails, you could try to downgrade by a database backup, or force "UPDATE version" to the old release's database version. https://docs.gitea.com/installation/upgrade-from-gitea
  2. If a migration fails, then usually it is a bug and it needs to be fixed.
@wxiaoguang commented on GitHub (May 15, 2025): That's too complex ......... I am not sure what we are talking about. In short: 1. If a upgrade fails, you could try to downgrade by a database backup, or force "UPDATE version" to the old release's database version. https://docs.gitea.com/installation/upgrade-from-gitea 2. If a migration fails, then usually it is a bug and it needs to be fixed.
Author
Owner

@caerbannogwhite commented on GitHub (May 15, 2025):

I'm not asking for anything other than that the bug should be fixed; I can revert those changes manually.

What I wanted to point out was that when I first tried to upgrade Gitea to 1.23.7:

  • the migration failed (v299)
  • the changes have been applied to the db regardless
  • the migration version number was NOT updated, so the changes went unnoticed

Anyway, thank you for your help. I've been harassing all of you recently, but I still think Gitea is a great piece of software.

@caerbannogwhite commented on GitHub (May 15, 2025): I'm not asking for anything other than that the bug should be fixed; I can revert those changes manually. What I wanted to point out was that when I first tried to upgrade Gitea to 1.23.7: - the migration failed (v299) - the changes have been applied to the db regardless - the migration version number was NOT updated, so the changes went unnoticed Anyway, thank you for your help. I've been harassing all of you recently, but I still think Gitea is a great piece of software.
Author
Owner

@wxiaoguang commented on GitHub (May 15, 2025):

Well, many unrelated things were mixed together in this issue report.

  • If you are asking about: Trying to migrate Gitea from 1.22.6 to 1.23.8 (see [#34275](https://github.com/go-gitea/gitea/issues/34275) ) on Windows, SQL Server 2019 (version 15.0.2130.3), I got the same error reported in [#34275](https://github.com/go-gitea/gitea/issues/34275)

    • @lunny the bug is still there and not fixed.
  • If you are asking about [F] Migration Error: Your database (migration version: 302) is for a newer Gitea, you can not use the newer database for this old Gitea release (299).

@wxiaoguang commented on GitHub (May 15, 2025): Well, many unrelated things were mixed together in this issue report. * If you are asking about: `Trying to migrate Gitea from 1.22.6 to 1.23.8 (see [#34275](https://github.com/go-gitea/gitea/issues/34275) ) on Windows, SQL Server 2019 (version 15.0.2130.3), I got the same error reported in [#34275](https://github.com/go-gitea/gitea/issues/34275)` * @lunny the bug is still there and not fixed. * If you are asking about `[F] Migration Error: Your database (migration version: 302) is for a newer Gitea, you can not use the newer database for this old Gitea release (299).` * That's only related to upgrade/downgrade: https://github.com/go-gitea/gitea/issues/34455#issuecomment-2882039886
Author
Owner

@caerbannogwhite commented on GitHub (May 15, 2025):

  • If you are asking about [F] Migration Error: Your database (migration version: 302) is for a newer Gitea, you can not use the newer database for this old Gitea release (299).

Apologies for not being clear: in the current issue report, I'm only asking to ensure that if a migration fails, all changes made to the database should be reverted automatically.

If you think that what I'm asking is out of scope, and that's a user's responsibility to backup and restore the database in case of a failure, I think you can close this issue.

However, what emerged from my findings is that in at least one case, there were changes applied to the database that went unnoticed because the version number was not been updated. So, if you close this issue, another issue might be required to ensure that doesn't happen again.

  • If you are asking about: Trying to migrate Gitea from 1.22.6 to 1.23.8 (see [#34275](https://github.com/go-gitea/gitea/issues/34275) ) on Windows, SQL Server 2019 (version 15.0.2130.3), I got the same error reported in [#34275](https://github.com/go-gitea/gitea/issues/34275)

    • @lunny the bug is still there and not fixed.

I've already added a comment on #34275 with the log highlights, it might be the case to reopen the issue.

@caerbannogwhite commented on GitHub (May 15, 2025): > * If you are asking about `[F] Migration Error: Your database (migration version: 302) is for a newer Gitea, you can not use the newer database for this old Gitea release (299).` Apologies for not being clear: in the current issue report, I'm only asking to ensure that if a migration fails, all changes made to the database should be reverted automatically. If you think that what I'm asking is out of scope, and that's a user's responsibility to backup and restore the database in case of a failure, I think you can close this issue. However, what emerged from my findings is that in at least one case, _there were changes applied to the database that went unnoticed because the version number was not been updated._ So, if you close this issue, another issue might be required to ensure that doesn't happen again. > * If you are asking about: `Trying to migrate Gitea from 1.22.6 to 1.23.8 (see [#34275](https://github.com/go-gitea/gitea/issues/34275) ) on Windows, SQL Server 2019 (version 15.0.2130.3), I got the same error reported in [#34275](https://github.com/go-gitea/gitea/issues/34275)` > > * [@lunny](https://github.com/lunny) the bug is still there and not fixed. I've already added a comment on #34275 with the log highlights, it might be the case to reopen the issue.
Author
Owner

@lunny commented on GitHub (May 15, 2025):

Since your database version is 302, migration 299 should be PASSed. #34295 fixed 299 but not all migration problems. #34456 should fixed others.

@lunny commented on GitHub (May 15, 2025): Since your database version is 302, migration 299 should be PASSed. #34295 fixed 299 but not all migration problems. #34456 should fixed others.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/gitea#14485