-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support converting varchar to nvarchar for mssql database #24105
Conversation
Codecov Report
@@ Coverage Diff @@
## main #24105 +/- ##
==========================================
- Coverage 47.14% 47.12% -0.03%
==========================================
Files 1149 1162 +13
Lines 151446 153830 +2384
==========================================
+ Hits 71397 72489 +1092
- Misses 71611 72821 +1210
- Partials 8438 8520 +82
... and 164 files with indirect coverage changes Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. |
Co-authored-by: Jason Song <i@wolfogre.com>
…24168) Backport #24105 by @lunny In #12269, all string fields of struct will generate a NVARCHAR column in database, but for those Gitea instances installed before that PR, users have to convert columns themselves. In this PR, we update the `./gitea admin convert` commands to support both MySQL and MSSQL database converting. Previously, it only supported converting `utf8 -> utf8mb4` for MySQL. Now, it will check the database types. If it's MSSQL, it will convert `VARCHAR -> NVARCHAR` as well. Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
* giteaofficial/main: (25 commits) zh-cn support on doc pages (go-gitea#24166) [skip ci] Updated translations via Crowdin Use double quotes consistently in en-US (go-gitea#24141) Use correct locale key for forks page (go-gitea#24172) Improve Wiki TOC (go-gitea#24137) Localize activity heatmap (except tooltip) (go-gitea#24131) Support triggering workflows by wiki related events (go-gitea#24119) add CLI command to register runner tokens (go-gitea#23762) Add new user types `reserved`, `bot`, and `remote` (go-gitea#24026) Fix Org edit page bugs: renaming detection, maxlength (go-gitea#24161) Make HAS_GO a simply expanded variable (go-gitea#24169) Support converting varchar to nvarchar for mssql database (go-gitea#24105) Fix math and mermaid rendering bugs (go-gitea#24049) Refactor locale number (go-gitea#24134) [skip ci] Updated translations via Crowdin Use 1.18's aria role for dropdown menus (go-gitea#24144) Set EasyMDE heading font-size to the same size as the resulting markdown (go-gitea#24151) Fix 2-dot direct compare to use the right base commit (go-gitea#24133) Add migration to fix external unit access mode of owner/admin team (go-gitea#24117) Remove untranslatable `on_date` key (go-gitea#24106) ...
Not sure how thoroughly this was tested on SQL Server, but I got a lot of errors with the included tool and it appears to have some serious shortcomings (VARCHAR(MAX) doesn't work, and it doesn't quote the names). SQL Server also users "ALTER COLUMN" not "MODIFY". This is my modified query although I am still having errors due to unique index dependencies. Not a major issue for us at this stage, I just thought it should be run as it was mentioned on the blog. SELECT 'ALTER TABLE [' + OBJECT_NAME(SC.object_id) + '] ALTER COLUMN [' + SC.name + '] NVARCHAR(' + FROM SYS.columns SC |
In #12269, all string fields of struct will generate a NVARCHAR column in database, but for those Gitea instances installed before that PR, users have to convert columns themselves.
In this PR, we update the
./gitea admin convert
commands to support both MySQL and MSSQL database converting. Previously, it only supported convertingutf8 -> utf8mb4
for MySQL.Now, it will check the database types.
If it's MSSQL, it will convert
VARCHAR -> NVARCHAR
as well.