mirror of
https://github.com/kingmo888/rustdesk-api-server.git
synced 2026-02-21 10:27:23 +08:00
支持mysql并增加转换教程 close [44]
This commit is contained in:
parent
a13d0fc7db
commit
0a1107f71a
@ -9,7 +9,7 @@
|
||||
<p align="center">
|
||||
<i>一个 python 实现的 Rustdesk API 接口,支持 WebUI 管理</i>
|
||||
<br/>
|
||||
<img src ="https://img.shields.io/badge/Version-1.4.7-blueviolet.svg"/>
|
||||
<img src ="https://img.shields.io/badge/Version-1.4.8-blueviolet.svg"/>
|
||||
<img src ="https://img.shields.io/badge/Python-3.7|3.8|3.9|3.10|3.11-blue.svg" />
|
||||
<img src ="https://img.shields.io/badge/Django-3.2+|4.x-yelow.svg" />
|
||||
<br/>
|
||||
@ -136,12 +136,12 @@ services:
|
||||
| `ALLOW_REGISTRATION` | 可选,默认 `True` | 是否允许新用户注册 |
|
||||
| 数据库配置 | -- 开始 -- | 若不使用MYSQL则以下皆无需配置 |
|
||||
| `DATABASE_TYPE` | 可选,默认 `SQLITE3` | 数据库类型(SQLITE/MYSQL) |
|
||||
| `MYSQL_NAME` | 可选,默认 `-` | MYSQL数据库名称 |
|
||||
| `MYSQL_DBNAME` | 可选,默认 `-` | MYSQL数据库名称 |
|
||||
| `MYSQL_HOST` | 可选,默认 `127.0.0.1` | MYSQL数据库的服务器IP |
|
||||
| `MYSQL_USER` | 可选,默认 `-` | MYSQL数据库的用户名 |
|
||||
| `MYSQL_PASSWORD` | 可选,默认 `-` | MYSQL数据库的密码 |
|
||||
| `MYSQL_PORT` | 可选,默认 `3306` | MYSQL数据库端口 |
|
||||
| 数据库配置 | -- 结束 -- | 查看【[sqlite3迁移mysql教程](https://www.52pojie.cn/thread-1708319-1-1.html)】 |
|
||||
| 数据库配置 | -- 结束 -- | 查看【[sqlite3迁移mysql教程](/tutorial/sqlite2mysql.md)】 |
|
||||
|
||||
## 使用问题
|
||||
|
||||
@ -194,7 +194,7 @@ services:
|
||||
|
||||
- [x] 通过配置项设定是否允许新用户注册(1.4.7)。
|
||||
|
||||
- [ ] 支持mysql及sqlite3迁移mysql。
|
||||
- [x] 支持mysql及sqlite3迁移mysql(1.4.8)。
|
||||
|
||||
## 其他相关工具
|
||||
|
||||
|
||||
@ -34,6 +34,16 @@ AUTH_USER_MODEL = 'api.UserProfile' #AppName.自定义user
|
||||
|
||||
ALLOW_REGISTRATION = os.environ.get("ALLOW_REGISTRATION", True) # 是否允许注册, True为允许,False为不允许
|
||||
|
||||
#==========数据库配置 开始=====================
|
||||
DATABASE_TYPE = os.environ.get("DATABASE_TYPE", 'SQLITE')
|
||||
MYSQL_DBNAME = os.environ.get("MYSQL_DBNAME", '-')
|
||||
MYSQL_HOST = os.environ.get("MYSQL_HOST", '127.0.0.1')
|
||||
MYSQL_USER = os.environ.get("MYSQL_USER", '-')
|
||||
MYSQL_PASSWORD = os.environ.get("MYSQL_PASSWORD", '-')
|
||||
MYSQL_PORT = os.environ.get("MYSQL_PORT", '3306')
|
||||
#==========数据库配置 结束=====================
|
||||
|
||||
|
||||
# Application definition
|
||||
|
||||
INSTALLED_APPS = [
|
||||
@ -82,13 +92,26 @@ WSGI_APPLICATION = 'rustdesk_server_api.wsgi.application'
|
||||
# Database
|
||||
# https://docs.djangoproject.com/en/3.1/ref/settings/#databases
|
||||
|
||||
|
||||
DATABASES = {
|
||||
'default': {
|
||||
'ENGINE': 'django.db.backends.sqlite3',
|
||||
'NAME': BASE_DIR / 'db/db.sqlite3',
|
||||
}
|
||||
}
|
||||
|
||||
if DATABASE_TYPE == 'MYSQL' and MYSQL_DBNAME!='-' and USER!= '-' and PASSWORD!='-':
|
||||
# 简单通过数据库名、账密信息过滤下,防止用户未配置mysql却使用mysql
|
||||
DATABASES = {
|
||||
'default': {
|
||||
'ENGINE': 'django.db.backends.mysql',
|
||||
'NAME': MYSQL_DBNAME, # 数据库名
|
||||
'HOST': MYSQL_HOST, # 数据库服务器IP
|
||||
'USER': MYSQL_USER, # 数据库用户名
|
||||
'PASSWORD': MYSQL_PASSWORD, # 数据库密码
|
||||
'PORT': MYSQL_PORT, # 端口
|
||||
'OPTIONS': {'charset': 'utf8'},
|
||||
}
|
||||
}
|
||||
|
||||
# Password validation
|
||||
# https://docs.djangoproject.com/en/3.1/ref/settings/#auth-password-validators
|
||||
|
||||
65
tutorial/sqlite2mysql.md
Normal file
65
tutorial/sqlite2mysql.md
Normal file
@ -0,0 +1,65 @@
|
||||
# 默认数据库(sqlite3)转Mysql数据库保姆级教程
|
||||
|
||||
### 本教程尽量保持源码安装与docker安装的通用性。
|
||||
|
||||
1、源码安装(如果采用源码安装的跳过1、2步骤)
|
||||
```
|
||||
# 将代码克隆到本地
|
||||
git clone https://github.com/kingmo888/rustdesk-api-server.git
|
||||
# 进入目录
|
||||
cd rustdesk-api-server
|
||||
# 安装依赖
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
2、覆盖数据库
|
||||
|
||||
全新安装时数据库为默认数据库,请将你正在使用的数据库覆盖到`/db/db.sqlite3`
|
||||
|
||||
3、 从sqlite数据库备份数据
|
||||
|
||||
执行命令:`python manage.py dumpdata > data.json`,将数据导出到根目录下的`data.json`中。
|
||||
|
||||
4、修改数据库配置
|
||||
|
||||
假设新建的mysql空数据库的信息如下:
|
||||
|
||||
| 信息 | 值 |
|
||||
| ------- | ------- |
|
||||
| 数据库服务器IP | 192.168.1.33 |
|
||||
| 数据库名 | rustdesk_api |
|
||||
| 数据库用户名 | myuser |
|
||||
| 数据库密码 | 123456 |
|
||||
| 数据库端口 | 3099 |
|
||||
|
||||
|
||||
在文件`rustdesk_server_api/settings.py`中依次修改如下配置:
|
||||
|
||||
- (1) `DATABASE_TYPE = os.environ.get("DATABASE_TYPE", 'SQLITE')`改为`DATABASE_TYPE = os.environ.get("DATABASE_TYPE", 'MYSQL')`
|
||||
- (2) `MYSQL_HOST = os.environ.get("MYSQL_DBNAME", '127.0.0.1')`改为`MYSQL_HOST = os.environ.get("MYSQL_HOST", '192.168.1.33')`
|
||||
- (3) `MYSQL_DBNAME = os.environ.get("MYSQL_DBNAME", '-')`改为`MYSQL_DBNAME = os.environ.get("MYSQL_DBNAME", 'rustdesk_api')`
|
||||
- (4)`MYSQL_USER = os.environ.get("MYSQL_USER", '-')`改为`MYSQL_USER = os.environ.get("MYSQL_USER", 'myuser')`
|
||||
- (5)`MYSQL_PASSWORD = os.environ.get("MYSQL_PASSWORD", '-')`改为`MYSQL_USER = os.environ.get("MYSQL_PASSWORD", '123456')`
|
||||
- (6)`MYSQL_PORT = os.environ.get("MYSQL_USER", '3306')`改为`MYSQL_USER = os.environ.get("MYSQL_USER", '3099')`
|
||||
|
||||
5、使用命令在mysql中创建表
|
||||
|
||||
`python manage.py makemigrations`
|
||||
|
||||
`python manage.py migrate`
|
||||
|
||||
通过mysql数据库管理工具查看数据库表:`django_content_type`, `auth_permission`,如果存在数据,需要将这两个标清空,否则导入备份数据时会出错(提示重复导入数据)。
|
||||
|
||||
6、将备份数据导入mysql
|
||||
|
||||
执行`python manage.py loaddata data.json`
|
||||
|
||||
在加载数据的过程中,最有可能的报错是提示导出的数据文件data.json中编码不是utf-8,需要把data.json文件转为utf-8格式,然后在加载数据到mysql中。
|
||||
|
||||
还有可能会提示其他原数据有问题导致的报错,根据报错提示查看原数据的问题。修改之后再次从sqlite3导出数据,然后导入数据。
|
||||
|
||||
|
||||
7、docker使用
|
||||
|
||||
如果mysql数据库已经配置好,则只需要将环境变量中mysql的部分按要求修改,重启即可。
|
||||
如果未配置mysql数据库,则将`步骤6`中已经配置好的mysql数据库导出,并在你需要的指定位置新建并还原,然后将环境变量中mysql的部分按要求修改,重启即可。
|
||||
Loading…
Reference in New Issue
Block a user