Redash 二開 - 後端環境搭建

曉晨Master發表於2020-10-09

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 可能遇到的一些問題:

三.安裝 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 建立虛擬環境

image-20200930160346529

建立好虛擬環境後,在 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:

image-20200930161247945

Scheduler:

image-20200930161314469

4.設定除錯配置

直接執行Server的命令是:

./manage.py runserver --debugger --reload

這樣無法除錯,除錯需要新增配置:

image-20200930161450642

這樣啟動訪問 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 的圖。

image-20200930162433269

相關文章