redash使用与开发(一):项目安装与运行

本文是对redash的官方文档中关于开发者如何安装项目 Developer Installation Guide 的复现和自己的一些理解

环境:

  • ubuntu 18.04
  • redash alpha 9.0.0 (dev)

包括后面的一些记录都是基于这个环境的

一、获取项目

git clone https://github.com/getredash/redash.git
如果这个方法太慢也可以直接去github网站下载项目
redash使用与开发(一):项目安装与运行_第1张图片

二、(可选)激活虚拟环境

推荐使用conda管理虚拟环境

  1. 安装anaconda3 linux版 可以去清华镜像站下载
  2. conda create -n redash python=3.7
  3. source activate redash

三、安装依赖

1.安装Redis

sudo apt-get install redis-server
redis暂时不需要进行复杂的配置

2.postgreSQL 安装与配置

主要用到的命令有:
安装 sudo apt-get install postgresql

引用https://blog.csdn.net/mimicoa/article/details/79090930中的一段话
在初次安装完成后,pg默认已经进行了如下的操作:创建了一个名为postgres的数据库用户和一个名为postgres的数据库,同时还创建了一个名为postgres的Linux系统用户。实际上,这里创建的postgres数据库用户拥有超级管理员身份,可以访问我们后面所创建的所有数据库,同时可以进行创建新数据库用户和修改用户密码等操作。

打开控制台sudo -u postgres psql
先给postgres用户设置一下密码postgres=# \password postgres
创建一个新的用户CREATE USER njuszj WITH PASSWORD 'passwd'
这里必须建立一个与当前linux用户同名的psql用户,因为创建表要用到
以下内容为拓展:

创建一个新的数据库CREATE DATABASE dbname OWNER njuszj;
以新用户身份登陆psql -U njuszj -d dbname

注意:

  • psql的数据库名称是小写字母,就算设置的时候是大写字母,实际上仍是小写字母,使用大写字母是无法登陆的。
  • 暂时只要把用户建立好就可以啦

参考https://blog.csdn.net/mimicoa/article/details/79090930
psql控制台常用操作
\password 设置密码
\q 退出
\h 查看SQL命令的解释,比如\h select
? 查看psql命令列表
\l 列出所有数据库
\c [database_name] 连接其他数据库
\d 列出当前数据库的所有表格
\d [table_name] 列出某一张表格的结构
\x 对数据做展开操作
\du 列出所有用户

3.python相关库安装

python库依赖在 requirements.txtrequirements_dev.txt两个文件中有描述,但是不需要一个一个手动pip,运行以下命令安装依赖:
pip install -r requirements.txt -r requirements_dev.txt
部分包可能安装失败,请搜索报错信息, 安装、升级相关依赖,然后重新运行上述命令。或者从txt中移除报错的库,最后再单独pip安装解决。
我在安装的过程中补充安装了两个缺失的库以解决报错
sudo apt-get install libpq-dev
sudo apt-get install gcc

4. Node.js Packages
  • 执行 npm install 命令安装需要的包
  • 执行npm run build构建素材

注:这两个命令主要跟package.json配置文件中的依赖配置相关

四、创建数据库/数据表

./manage.py database create_tables

五、开启服务

必需要运行的进程是Web server和RQ调度,官方推荐以下几个命令

  • 开启 Web server: ./manage.py runserver --debugger --reload
  • RQ: ./manage.py rq worker
  • RQ Scheduler: ./manage.py rq scheduler
  • Frontend watch process to rebuild changes: npm run watch

关于以上命令的作用,贴一段原文
This will result in a Flask web server listening on port 5000, Webpack rebuilding changes to the frontend, RQ worker ready to run queries and RQ scheduler to enqueue periodic tasks.

你可能感兴趣的:(redash)