Django系统迁移

BJ自动化测试平台交接

环境准备

部署系统版本

ubuntu x86_64 GNU/Linux

安装python依赖包

pip install -r requirements.txt

安装Celery中间人:redis

  • 下载安装

https://redis.io/download

  • 配置可参考

使用 Redis

  • settings中对应的配置(都可在autohome_data_site/settings.py中找到)
1
2
3
4
5
djcelery.setup_loader()
CELERY_TIMEZONE = 'Asia/Shanghai'
BROKER_URL = 'redis://127.0.0.1:6379/8'
CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379/9'
CELERY_IMPORTS = ("apps.app1.tasks", "apps.app2.tasks", "apps.app3.tasks",)

数据库编码更改UTF8

  • 进入数据库 mysql -u root -p

  • 使用命令show variables like 'collation_%';show variables like 'character_%'; 查看Mysql的字符集和排序方式

1
2
3
4
1. vim /etc/mysql/my.cnf
2. character-set-server=utf8
3. default-character-set=utf8
4. service mysql restart
  • 当修改完之后,可以再查看数据库当前字符集配置,你会发现server端的character变成utf-8了,这就说明大工告成了。

迁移

配置文件

  • nginx的配置文件nginx.conf ()

  • uWSGI的配置文件wsgi.py (autohome_data_site/autohome_data_site/wsgi.py)

  • gunicorn启动文件 (autohome_data_site/bin/gunicorn_start.sh)

数据库内容迁移

  • 导出数据库内容

python manage.py dumpdata > all.json # 指定导出的json名字

  • 执行数据导入前,我们还需要先将项目对应的数据库建立起来。

新创建的数据库名字最好和Django项目的settings文件中配置的数据库名字保持一致,不然将无法找到数据库。

settings中数据库配置为

1
2
3
4
5
6
7
8
9
10
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'baojia',
'USER': 'root',
'PASSWORD': '1',
'HOST': '127.0.0.1',
'PORT': '3306',
}
}

  • 创建数据库
1
2
3
mysql -u root -p
create database; [数据库名称]
show databases;
  • 执行Django中的创建数据模型
1
python manage.py migrate
  • 将之前导出的数据库JSON文件导入即可(all.json在项目根目录下)
1
python manage.py loaddata all.json

启动服务

  • 启动Django服务
1
~/autohome_data_site/bin/./gunicorn_start.sh
  • 启动Celery服务

在项目目录下执行

1
python manage.py celery worker -c 6 -l debug
  • 启动Celery心跳

在项目目录下执行

1
python manage.py celery beat

目录介绍

主目录 功能
apps celery beat 定时队列任务
autohome 对应后台autohome项目,主要为基础数据查询
autohome_data_site 系统目录
|–settings.py django系统配置文件
BaseFunc 一些公共方法
bin 执行脚本
CheckUrl 早期检查url的小脚本
document 作废
interface 接口测试功能都在此项目中
logs 日志目录,可迁移
media nginx映射静态目录
moco mock数据项目
pvtest 与客户端配合自动测试pv签的项目
run gunicorn启动文件
static 静态文件,js,css
templates html模板文件
TestCase 业务类测试用例
|–case 业务脚本
|–gen_script 生成多数据测试用例脚本
|–priceapiactivities 报价活动测试脚本
|–report 业务测试报告

需要的服务

序号 功能 作用
1 django 站点
2 gunicorn 内部分发服务
3 nginx 静态外部服务器
4 supervisor 任务监控
5 celery 定时任务
6 redis nosql快速缓存