Redash 二开 - 后端环境搭建
一.操作系统选择
官方文档有一句话:Windows users: while it should be possible to run Redash on a Windows machine, we don’t know anyone who did this and lived to tell. We recommend using some sort of a virtual machine or Docker in such case.
当时没有注意,后面掉在坑里了,若对 Redash 进行二开,务必不要使用 Windows:第一点 Redash 依赖的 Python 包在Windows安装,本地编译的时候各种报错,不过还算都能解决。最要命的是第二点,某些包依赖的标准库模块,Windows 上没有,比如 group pwd 等。经过一下午和包安装的战斗,总算解决了,最后信心满满的想跑起来的时候,各种模块找不到。
在这里推荐的操作系统是 OSX,因为各种生产力工具都支持 OSX,如果没有这个条件推荐 Linux,Ubuntu 或者国产 Deepin,因为公司的 mac 都分配完了,所以我选择了安装一个 Deepin ,就在本机安装,和 Windows 10 组个双系统。如果说装 Deepin 尽量使用固态。安装教程传送门 ,安装好以后会自动设置双系统引导。
二.必要环境安装
1.Git
apt-get install git
2.Python 3.7
在 Redash 9.0.x 版本支持的 Python 最高版本为 3.7.9,因为 3.8 对一些模块有了改变,无法使用。
请根据 官方文档 进行安装
3.可视化 Git 管理工具
OSX 推荐 SourceTree , Linux 推荐 SmartGit
4.Navicat Premium 15
Navicat Premium 支持多种数据源,是非常方便的可视化 DBMS
5.Pycharm
特别说明:Deepin 可以在 应用商店安装 微信,但是钉钉无法安装,可以使用网页版 https://im.dingtalk.com/
对于 Deepin 可能遇到的一些问题:
- linux(deepin)在桌面上制作启动图标(快捷方式)
- Linux 安装Navicat Premium 15
- dpkg安装以及卸载软件
- deepin20 安装搜狗输入法 for Linux V2.3.2.07
- 11 个 Linux 上最佳的图形化 Git 客户端
- 图解:Deepin手动安装PyCharm(解决了没有启动图标的问题)
- git 设置代理,提高下载速度
三.安装 Redash 依赖
通过 pip 安装依赖前请务必执行以下命令安装软件包,否则安装过程可能出现几个包报错,
#pyodbc https://github.com/mkleehammer/pyodbc/issues/276
sudo apt-get install build-essential libssl-dev libffi-dev python3-dev
sudo apt-get install unixodbc-dev
#pycrypto https://stackoverflow.com/questions/50080459/failed-installing-pycrypto-with-pip
sudo apt-get install build-essential libssl-dev libffi-dev python3-dev
#psycopg https://stackoverflow.com/questions/55581941/getting-error-when-installing-psycopg2-2-8-1
sudo apt-get install libpq-dev
#mysqlclient https://pypi.org/project/mysqlclient/1.3.14/
sudo apt-get install python-dev default-libmysqlclient-dev
使用 Pycharm 打开 Redash 文件夹,选择菜单:File->Settings->Project Interpreter 创建虚拟环境
创建好虚拟环境后,在 Pycharm 的 Terminal 执行
pip -r requirements.txt -r requirements_dev.txt -r requirements_all_ds.txt
必须全部安装成功,若一个没有安装成功就去Google查找解决方案。
四.调试和运行配置
1.编辑数据库连接信息
打开 项目根目录/redash/settings/__init__.py
修改 redis 地址:
"REDASH_REDIS_URL", os.environ.get("REDIS_URL", "redis://<redis ip>:6379/<redis db>")
修改 postgresql 地址:
"REDASH_DATABASE_URL", os.environ.get("DATABASE_URL", "postgresql://<用户名>:<密码>@<ip>:5432/<数据库名称>")
2.执行数据库迁移
在 Terminal 输入:
./manage.py database create_tables
3.启动RQ
在 Terminal 新开两个选项卡,分别执行以下命令来启动
# RQ Worker
./manage.py rq worker
#RQ Scheduler
./manage.py rq scheduler
Worker:
Scheduler:
4.设置调试配置
直接运行Server的命令是:
./manage.py runserver --debugger --reload
这样无法调试,调试需要添加配置:
这样启动访问 https://localhost:5000 发现UI很简陋,需要我们自己启动前端项目。
五.启动前端项目
1.安装 Node
2.安装依赖
npm i -g @babel/cli
npm i -g @babel/core
npm install
3.运行
在 Pycharm Terminal 新建一个选项卡,输入 npm run watch
即可启动
六.结束
安装过程全是辛酸泪,从最开始的 Windows 上折腾 Python 依赖的问题,到最后确实无法运行的结果,然后又装 Deepin 从零搭建开发环境到运行起来(花了一个下午),几经波折,终究是如愿以偿。此间遇到的问题,全都写在文中了,希望能帮到大家。最后发一张 Deepin 系统和成功跑起来的 Redash 的图。