Redash 二開 – 後端環境搭建
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 可以在 應用商店安裝 微信,但是釘釘無法安裝,可以使用網頁版 //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 //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 //stackoverflow.com/questions/50080459/failed-installing-pycrypto-with-pip
sudo apt-get install build-essential libssl-dev libffi-dev python3-dev
#psycopg //stackoverflow.com/questions/55581941/getting-error-when-installing-psycopg2-2-8-1
sudo apt-get install libpq-dev
#mysqlclient //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
這樣無法調試,調試需要添加配置:
這樣啟動訪問 //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 的圖。