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 的圖。