升级常见问题

请务必认真详细阅读每一个文字并理解后才能操作升级事宜

  • git pull 时提示 error: Your local changes to the following file would be overwritten by merge
  1. # 这是因为你修改了本地文件导致代码冲突, 请确认修改的内容并手动进行合并, 请谨慎处理
  2.  
  3. # 如果希望保留你的改动
  4. $ git stash
  5. $ git pull
  6. $ git stash pop
  7. # 可以使用git diff -w +文件名 来确认代码自动合并的情况
  8.  
  9. # 或者放弃本地的修改
  10. $ git reset --hard
  11. $ git pull
  • sh make_migrations.sh 时提示 1064, "You have an error in your SQL syntax; check the manual than corresponds to your MySql server version for the right syntax to use near '(6) NOT NULL'"
  1. # 这是因为你的数据库版本不对, 从 1.4.x 版本开始 mysql 版本需要大于等于 5.6, mariadb 版本需要大于等于 5.5.6
  2. # 请更换数据库重新操作
  • 数据库表结构不完整导致升级失败的, 按如下内容进行处理
  1. # 一定要知道自己升级之前的版本, 在升级之前可以通过如下代码进行查询, 记住是升级之前, 也可以通过 web 页面的右下角来查看当前版本信息
  2. $ cat /opt/jumpserver/apps/jumpserver/context_processor.py | grep version
  3. $ cat /opt/jumpserver/apps/templates/_footer.html | grep Version
  4.  
  5. # 备份当前版本数据库, 忽略 django_migrations 表
  6. $ mysqldump -uroot -p jumpserver --ignore-table=jumpserver.django_migrations > /opt/jumpserver.sql
  7.  
  8. # 重命名 Jumpserver 目录
  9. $ mv /opt/jumpserver /opt/jumpserver_bak
  10.  
  11. # 重新 clone 代码
  12. $ cd /opt
  13. $ git clone https://github.com/jumpserver/jumpserver.git
  14. $ cd jumpserver
  15.  
  16. # 检出你之前的版本, 比如之前的版本是1.4.0
  17. $ git checkout 1.4.0 # 1.4.0 表示版本号, 自己手动更换成你当前的版本, 如 1.3.1 则输入 git checkout 1.3.1
  18.  
  19. # 依赖安装
  20. $ source /opt/py3/bin/activate
  21. $ yum -y install $(cat /opt/jumpserver/requirements/rpm_requirements.txt)
  22. $ pip install -r /opt/jumpserver/requirements/requirements.txt
  23.  
  24. # 重新创建一个数据库
  25. $ mysql -uroot
  26. > create database jumpserver01 default charset 'utf8';
  27. > grant all on jumpserver01.* to 'jumpserver01'@'127.0.0.1' identified by 'weakPassword';
  28. > flush privileges;
  29. > quit
  30.  
  31. # 修改配置文件
  32. $ cp /opt/jumpserver_bak/config.py /opt/jumpserver/
  33. $ vim /opt/jumpserver/config.py
  34. DB_ENGINE = 'mysql'
  35. DB_HOST = '127.0.0.1'
  36. DB_PORT = 3306
  37. DB_USER = 'jumpserver01'
  38. DB_PASSWORD = 'weakPassword'
  39. DB_NAME = 'jumpserver01'
  40.  
  41. # 初始化数据库
  42. $ cd /opt/jumpserver/utils
  43. $ sh make_migrations.sh
  44.  
  45. # 确定初始化没有错误, 把旧的数据库导入
  46. $ mysql -uroot
  47. > use jumpserver01;
  48. > source /opt/jumpserver.sql
  49.  
  50. # 启动 jumpserver, 确定没有错误
  51. $ cd /opt/jumpserver
  52. $ ./jms start
  53.  
  54. # 打开 web 页面检查是否都正常
  55.  
  56. $ 参考升级文档继续升级到最新版本即可
  57.  
  58. # 删除原数据库命令(谨慎操作)
  59. $ mysql -uroot
  60. > drop database jumpserver;
  61. > quit