打 Log
遇到问题先看日志!!!
Gitea 的日志 与 Debug
Gitea 的日志输出有 4 种方式:
Gitea Debug
- 开启控制台输出日志
- 修改日志等级
数据迁移、备份、恢复
其他问题 一
主要表现为 INSTALL_LOCK = true
的时候,无法启动,并且 version
表的 version
字段没有值。
至于为什么会在恢复数据时缺失了该字段,这有可能是在使用低版本的gitea,并在 gitea dump
导出数据时造成的,因为1.15-dev及以下的版本可能存在这个问题(1.15-dev验证存在该问题)。
解决方案就是给 version表添加version字段,并且设置version字段的值为对应版本号。
方案一:在导入数据前,修改 gitea-db.sql
文件中创建 version
表的SQL语句。
请根据具体情况修改以下的SQL语句以适应您的需求
CREATE TABLE IF NOT EXISTS `version` (`id` BIGINT(20) PRIMARY KEY AUTO_INCREMENT NOT NULL, `version` BIGINT(20) NOT NULL) DEFAULT CHARSET utf8mb4 ROW_FORMAT=DYNAMIC;
INSERT INTO `version` (`id`, `version`) VALUES (1, 178);
方案二:在导入数据后,给 Version 表添加 version
字段,并设置对应的值。
参考:
Gitea 镜像从Rootful更换至 Rootless
如果原先是使用的镜像是 rootful状态的,切换至 rootless需要注意两个镜像使用的路径不一致的问题。
- rootful 镜像Gitea应用程序存放的位置在
/data/gitea
- rootless 镜像gitea应用程序存放的位置在
/var/lib/gitea
还需要注意的是
# cp the dump file into gitea container
docker cp gitea-dump-202304071610.zip gitea:/tmp
# enter the gitea container
docker exec -u root -it -w /tmp gitea /bin/bash
unzip gitea-dump-202304071610.zip
# restore the old file
cp -rf data/* /data/gitea
cp -rf repos/* /data/git/repositories/
# must chown otherwise the gitea container can no be restarted
chown -R git:git /data
# exit the gitea container
exit
# enter gitea container with git user
docker exec -u git -it gitea /bin/bash
# this command must be run by git user. But I don't know the use about the command. Can some tell me?
/usr/local/bin/gitea -c '/data/gitea/conf/app.ini' admin regenerate hooks
# exit the gitea container
exit
# restart gitea container
docker restart gitea
先恢复数据库,因为之后再gitea容器内有个步骤:/usr/local/bin/gitea -c '/etc/gitea/app.ini' admin regenerate hooks
数据库,如果数据库没有对应的表会报错
# 复制导出的备份文件到数据库容器(gitea-db)内的 /tmp 目录
docker cp gitea-dump-202304071610.zip gitea-db:/tmp
# 进入数据库容器(gitea-db)的 /tmp 目录
docker exec -it -w /tmp gitea-db /bin/bash
# 解压文件
unzip gitea-dump-202304071610.zip
# 恢复数据库
mysql --default-character-set=utf8mb4 -u$USER -p$PASS $DATABASE <gitea-db.sql
# 清除复制过来的文件
接着恢复应用程序的数据库:
# 复制导出的备份文件到 gitea (应用程序)的容器内的 /tmp 目录
docker cp gitea-dump-202304071610.zip gitea:/tmp
# open bash session in container
docker exec --user git -it 2a83b293548e bash
# unzip your backup file within the container
unzip gitea-dump-1610949662.zip
cd gitea-dump-1610949662
# restore the app.ini
mv data/conf/app.ini /etc/gitea/app.ini
# restore the gitea data
mv data/* /var/lib/gitea
# restore the repositories itself
mv repos/* /var/lib/gitea/git/repositories
# adjust file permissions
chown -R git:git /etc/gitea/app.ini /var/lib/gitea
# Regenerate Git Hooks
/usr/local/bin/gitea -c '/etc/gitea/app.ini' admin regenerate hooks