From 23d56902d57735542cef0fef9b0f9cf5b402f7b5 Mon Sep 17 00:00:00 2001 From: freegolang Date: Tue, 25 Feb 2025 08:12:07 +0800 Subject: [PATCH 01/14] fix bug node version --- docker-compose/docker/DevFrontendDockerfile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docker-compose/docker/DevFrontendDockerfile b/docker-compose/docker/DevFrontendDockerfile index fa1335a..fe05a63 100644 --- a/docker-compose/docker/DevFrontendDockerfile +++ b/docker-compose/docker/DevFrontendDockerfile @@ -1,6 +1,10 @@ #使用 node:bullseye-slim 做基础镜像减少大小。 -FROM docker.m.daocloud.io/library/node:bullseye-slim +# FROM docker.m.daocloud.io/library/node:bullseye-slim +# fixbug 最新node 版本编译不过去, +# ERROR Error: Cannot find module './passes/web-incoming' + +FROM docker.m.daocloud.io/library/node:node:23.5.0-bullseye # https://opsx.alibaba.com/mirror # 使用阿里云镜像地址。修改debian apt 更新地址,pip 地址,设置时区。 -- Gitee From 3b7c481f5477f7e60def5e7dad92ecdf88672a96 Mon Sep 17 00:00:00 2001 From: freegolang Date: Wed, 26 Feb 2025 00:47:24 +0800 Subject: [PATCH 02/14] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E9=95=9C?= =?UTF-8?q?=E5=83=8F=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose/docker/DevFrontendDockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose/docker/DevFrontendDockerfile b/docker-compose/docker/DevFrontendDockerfile index fe05a63..02eaf3d 100644 --- a/docker-compose/docker/DevFrontendDockerfile +++ b/docker-compose/docker/DevFrontendDockerfile @@ -4,7 +4,7 @@ # fixbug 最新node 版本编译不过去, # ERROR Error: Cannot find module './passes/web-incoming' -FROM docker.m.daocloud.io/library/node:node:23.5.0-bullseye +FROM docker.m.daocloud.io/library/node:23.5.0-bullseye-slim # https://opsx.alibaba.com/mirror # 使用阿里云镜像地址。修改debian apt 更新地址,pip 地址,设置时区。 -- Gitee From 155b9b9539147ffac775a91c452263f6a1a5c546 Mon Sep 17 00:00:00 2001 From: freegolang Date: Wed, 26 Feb 2025 23:48:23 +0800 Subject: [PATCH 03/14] =?UTF-8?q?fix:=E4=BC=98=E5=8C=96=E8=84=9A=E6=9C=AC?= =?UTF-8?q?=EF=BC=8C=E5=88=A4=E6=96=AD=E6=96=87=E4=BB=B6=E5=A4=B9=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E5=AD=98=E5=9C=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/docker-entrypoint.sh | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/frontend/docker-entrypoint.sh b/frontend/docker-entrypoint.sh index bdd5f03..07e27ea 100755 --- a/frontend/docker-entrypoint.sh +++ b/frontend/docker-entrypoint.sh @@ -3,6 +3,19 @@ sleep 10 # 只依赖启动。 cd /usr/src/app -npm install --registry=https://registry.npmmirror.com + +#!/bin/bash + +# 定义要检查的文件夹路径 +modules_path="/usr/src/app/node_modules" + +# 使用[ ]检查文件夹是否存在 +if [ -d "$modules_path" ]; then + echo "文件夹 $modules_path 存在" +else + echo "文件夹 $modules_path 不存在,执行 install 安装" + npm install --registry=https://registry.npmmirror.com +fi + npm run dev sleep 999999d -- Gitee From 2e0e24825a7cade46427b7d2a3e886893ab6007b Mon Sep 17 00:00:00 2001 From: freegolang Date: Thu, 27 Feb 2025 21:42:26 +0800 Subject: [PATCH 04/14] =?UTF-8?q?fix:=20=E5=A2=9E=E5=8A=A0=20nginx=20?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=EF=BC=8C=E4=BD=BF=E7=94=A8=20node=20?= =?UTF-8?q?=E6=9E=84=E5=BB=BA=E6=8B=86=E5=88=86=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose/dev-docker-compose.yml | 24 +++++++++++++++++++----- docker-compose/nginx/nginx.conf | 22 ++++++++++++++++++++++ frontend/package.json | 2 +- frontend/public/40x.html | 8 ++++++++ frontend/public/50x.html | 19 +++++++++++++++++++ 5 files changed, 69 insertions(+), 6 deletions(-) create mode 100644 docker-compose/nginx/nginx.conf create mode 100644 frontend/public/40x.html create mode 100644 frontend/public/50x.html diff --git a/docker-compose/dev-docker-compose.yml b/docker-compose/dev-docker-compose.yml index 7c415e3..50bd288 100644 --- a/docker-compose/dev-docker-compose.yml +++ b/docker-compose/dev-docker-compose.yml @@ -4,25 +4,39 @@ networks: version: "3" services: - frontend: + +#### 使用node 镜像进行编译,构建成 js 文件给nginx 使用。 + frontend-build: image: pythonstock/frontend-dev:latest build: context: . dockerfile: docker/DevFrontendDockerfile - container_name: frontend + container_name: frontend-build + volumes: + # 设置开发目录,方便开发调试 + - "../frontend:/usr/src/app" + environment: + LANG: zh_CN.UTF-8 + LC_CTYPE: zh_CN.UTF-8 + networks: + stock-dev-network: {} + # 入口写死,手动启动应用。每次构建时候使用,构建完成结束 + entrypoint: /usr/src/app/docker-entrypoint.sh + nginx: + image: docker.m.daocloud.io/library/nginx:stable-alpine + container_name: nginx ports: - "8080:8080" volumes: # 设置开发目录,方便开发调试 - - "../frontend:/usr/src/app" + - "../frontend/dist:/usr/share/nginx/html" + - "./nginx/nginx.conf:/etc/nginx/conf.d/default.conf" environment: LANG: zh_CN.UTF-8 LC_CTYPE: zh_CN.UTF-8 restart: always networks: stock-dev-network: {} - # 入口写死,手动启动应用。 - entrypoint: /usr/src/app/docker-entrypoint.sh depends_on: - backend backend: diff --git a/docker-compose/nginx/nginx.conf b/docker-compose/nginx/nginx.conf new file mode 100644 index 0000000..65b4305 --- /dev/null +++ b/docker-compose/nginx/nginx.conf @@ -0,0 +1,22 @@ +server { + listen 8080; + server_name localhost; + #access_log /var/log/nginx/host.access.log main; + + location / { + root /usr/share/nginx/html; + index index.html index.htm; + } + + location /api/v1 { + proxy_pass http://backend:9090; + } + + + error_page 404 /404.html; + error_page 500 502 503 504 /50x.html; + location = /50x.html { + root /usr/share/nginx/html; + } + +} diff --git a/frontend/package.json b/frontend/package.json index 42990ba..343b354 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -5,7 +5,7 @@ "author": "Pan ", "scripts": { "dev": "./node_modules/.bin/vue-cli-service serve ", - "build:prod": "./node_modules/.bin/vue-cli-service build", + "build": "./node_modules/.bin/vue-cli-service build", "build:stage": "./node_modules/.bin/vue-cli-service build --mode staging", "preview": "node build/index.js --preview", "svgo": "./node_modules/.bin/svgo -f src/icons/svg --config=src/icons/svgo.yml", diff --git a/frontend/public/40x.html b/frontend/public/40x.html new file mode 100644 index 0000000..bc433cb --- /dev/null +++ b/frontend/public/40x.html @@ -0,0 +1,8 @@ + + +404 Not Found + +

404 Not Found

+
nginx/1.26.3
+ + \ No newline at end of file diff --git a/frontend/public/50x.html b/frontend/public/50x.html new file mode 100644 index 0000000..a57c2f9 --- /dev/null +++ b/frontend/public/50x.html @@ -0,0 +1,19 @@ + + + +Error + + + +

An error occurred.

+

Sorry, the page you are looking for is currently unavailable.
+Please try again later.

+

If you are the system administrator of this resource then you should check +the error log for details.

+

Faithfully yours, nginx.

+ + -- Gitee From 690ce76ba15dd7e35b72e07f4c31161ec8e1b172 Mon Sep 17 00:00:00 2001 From: freegolang Date: Thu, 27 Feb 2025 21:48:11 +0800 Subject: [PATCH 05/14] fix: add build --- frontend/docker-entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/docker-entrypoint.sh b/frontend/docker-entrypoint.sh index 07e27ea..6909868 100755 --- a/frontend/docker-entrypoint.sh +++ b/frontend/docker-entrypoint.sh @@ -17,5 +17,5 @@ else npm install --registry=https://registry.npmmirror.com fi -npm run dev +npm run build sleep 999999d -- Gitee From 50867b3ded3e6b7d3ff8e7e1e18ba139c0a9f92c Mon Sep 17 00:00:00 2001 From: freegolang Date: Thu, 27 Feb 2025 21:49:29 +0800 Subject: [PATCH 06/14] =?UTF-8?q?fix:=20=E5=81=9C=E9=A1=BF=E4=B8=80?= =?UTF-8?q?=E4=B8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/docker-entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/docker-entrypoint.sh b/frontend/docker-entrypoint.sh index 6909868..b72888e 100755 --- a/frontend/docker-entrypoint.sh +++ b/frontend/docker-entrypoint.sh @@ -1,6 +1,6 @@ #!/bin/sh -sleep 10 +sleep 1 # 只依赖启动。 cd /usr/src/app -- Gitee From 564236e8f0d14d168be051e769912a8d6a3a9d51 Mon Sep 17 00:00:00 2001 From: freegolang Date: Thu, 27 Feb 2025 22:24:22 +0800 Subject: [PATCH 07/14] =?UTF-8?q?fix:=20=E5=8C=BA=E5=88=86=E7=94=9F?= =?UTF-8?q?=E4=BA=A7=E7=8E=AF=E5=A2=83=E4=B8=8D=E6=98=AF=E5=92=8Cdev=20?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F=EF=BC=8C=E5=88=87=E6=8D=A2=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=20=E6=95=B4=E5=AD=97=E6=AE=B5=EF=BC=8C=E8=A7=A3?= =?UTF-8?q?=E5=86=B3=E6=8E=92=E5=BA=8F=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/web/dataTableHandler.py | 14 +- docker-compose/dev-docker-compose.yml | 24 +-- docker-compose/docker-compose.yml | 40 ++-- docker-compose/mysql/init.sql | 284 +++++++++++++------------- 4 files changed, 185 insertions(+), 177 deletions(-) diff --git a/backend/web/dataTableHandler.py b/backend/web/dataTableHandler.py index 2b4d47c..8b60e13 100755 --- a/backend/web/dataTableHandler.py +++ b/backend/web/dataTableHandler.py @@ -77,8 +77,9 @@ class GetStockDataHandler(webBase.BaseHandler): name_param = self.get_argument("name", default="stock_zh_ah_name", strip=False) type_param = self.get_argument("type", default=None, strip=False) date_param = self.get_argument("date", default=None, strip=False) + code_param = self.get_argument("code", default=None, strip=False) - logging.info(f"page param: {page_param}, {limit_param}, {type_param}, {date_param}") + logging.info(f"page param: {page_param}, {limit_param}, {type_param}, {date_param}, {code_param}") if name_param == ":tableName": @@ -148,6 +149,13 @@ class GetStockDataHandler(webBase.BaseHandler): search_sql += f" WHERE `date` = '{date_param}' " else: search_sql += f" AND `date` = '{date_param}' " + + if code_param: + if "WHERE" not in search_sql: + search_sql += f" WHERE `code` = '{code_param}' " + else: + search_sql += f" AND `code` = '{code_param}' " + # print("tableInfo :", stock_web) order_by_sql = "" # 增加排序。 @@ -159,9 +167,9 @@ class GetStockDataHandler(webBase.BaseHandler): col_tmp = tableInfo.columns[key] dir_tmp = order_by_dir[idx] if idx != 0: - order_by_sql += " ,cast(`%s` as decimal) %s" % (col_tmp, dir_tmp) + order_by_sql += " , %s %s" % (col_tmp, dir_tmp) else: - order_by_sql += " cast(`%s` as decimal) %s" % (col_tmp, dir_tmp) + order_by_sql += " %s %s" % (col_tmp, dir_tmp) idx += 1 # 查询数据库。 limit_sql = "" diff --git a/docker-compose/dev-docker-compose.yml b/docker-compose/dev-docker-compose.yml index 50bd288..7c415e3 100644 --- a/docker-compose/dev-docker-compose.yml +++ b/docker-compose/dev-docker-compose.yml @@ -4,39 +4,25 @@ networks: version: "3" services: - -#### 使用node 镜像进行编译,构建成 js 文件给nginx 使用。 - frontend-build: + frontend: image: pythonstock/frontend-dev:latest build: context: . dockerfile: docker/DevFrontendDockerfile - container_name: frontend-build - volumes: - # 设置开发目录,方便开发调试 - - "../frontend:/usr/src/app" - environment: - LANG: zh_CN.UTF-8 - LC_CTYPE: zh_CN.UTF-8 - networks: - stock-dev-network: {} - # 入口写死,手动启动应用。每次构建时候使用,构建完成结束 - entrypoint: /usr/src/app/docker-entrypoint.sh - nginx: - image: docker.m.daocloud.io/library/nginx:stable-alpine - container_name: nginx + container_name: frontend ports: - "8080:8080" volumes: # 设置开发目录,方便开发调试 - - "../frontend/dist:/usr/share/nginx/html" - - "./nginx/nginx.conf:/etc/nginx/conf.d/default.conf" + - "../frontend:/usr/src/app" environment: LANG: zh_CN.UTF-8 LC_CTYPE: zh_CN.UTF-8 restart: always networks: stock-dev-network: {} + # 入口写死,手动启动应用。 + entrypoint: /usr/src/app/docker-entrypoint.sh depends_on: - backend backend: diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index f2f6b9a..50bd288 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -1,35 +1,49 @@ networks: - stock-prod-network: + stock-dev-network: driver: bridge version: "3" services: - frontend: - image: pythonstock/frontend-prod:latest + +#### 使用node 镜像进行编译,构建成 js 文件给nginx 使用。 + frontend-build: + image: pythonstock/frontend-dev:latest build: context: . - dockerfile: docker/ProdFrontendDockerfile - container_name: frontend + dockerfile: docker/DevFrontendDockerfile + container_name: frontend-build + volumes: + # 设置开发目录,方便开发调试 + - "../frontend:/usr/src/app" + environment: + LANG: zh_CN.UTF-8 + LC_CTYPE: zh_CN.UTF-8 + networks: + stock-dev-network: {} + # 入口写死,手动启动应用。每次构建时候使用,构建完成结束 + entrypoint: /usr/src/app/docker-entrypoint.sh + nginx: + image: docker.m.daocloud.io/library/nginx:stable-alpine + container_name: nginx ports: - "8080:8080" volumes: # 设置开发目录,方便开发调试 - - "../frontend:/usr/src/app" + - "../frontend/dist:/usr/share/nginx/html" + - "./nginx/nginx.conf:/etc/nginx/conf.d/default.conf" environment: LANG: zh_CN.UTF-8 LC_CTYPE: zh_CN.UTF-8 restart: always networks: - stock-prod-network: {} - # 入口写死,手动启动应用。 - entrypoint: /usr/src/app/docker-entrypoint.sh + stock-dev-network: {} depends_on: - backend backend: - image: pythonstock/backend-prod:latest + image: pythonstock/backend-dev:latest build: context: . - dockerfile: docker/ProdBackendDockerfile + dockerfile: docker/DevBackendDockerfile container_name: backend ports: - "8888:8888" @@ -51,7 +65,7 @@ services: PYTHONIOENCODING: utf-8 restart: always networks: - stock-prod-network: {} + stock-dev-network: {} # 入口写死,手动启动应用。 #entrypoint: sleep 999999d depends_on: @@ -70,7 +84,7 @@ services: ports: - "3306:3306" networks: - stock-prod-network: {} + stock-dev-network: {} volumes: - "./mysql/my.cnf:/etc/mysql/my.cnf" - "./data/mysql-stock/data:/var/lib/mysql" diff --git a/docker-compose/mysql/init.sql b/docker-compose/mysql/init.sql index 98c2524..8ada9df 100644 --- a/docker-compose/mysql/init.sql +++ b/docker-compose/mysql/init.sql @@ -9,26 +9,26 @@ CREATE TABLE IF NOT EXISTS `stock_zh_a_spot_em` ( `date` varchar(255) NOT NULL, `code` varchar(255) NOT NULL, `name` varchar(255) DEFAULT NULL, - `last_price` varchar(255) DEFAULT NULL, - `change_percent` varchar(255) DEFAULT NULL, - `change_amount` varchar(255) DEFAULT NULL, - `volume` varchar(255) DEFAULT NULL, - `turnover` varchar(255) DEFAULT NULL, - `amplitude` varchar(255) DEFAULT NULL, - `high` varchar(255) DEFAULT NULL, - `low` varchar(255) DEFAULT NULL, - `open` varchar(255) DEFAULT NULL, - `closed` varchar(255) DEFAULT NULL, - `volume_ratio` varchar(255) DEFAULT NULL, - `turnover_rate` varchar(255) DEFAULT NULL, - `pe_ratio` varchar(255) DEFAULT NULL, - `pb_ratio` varchar(255) DEFAULT NULL, - `market_cap` varchar(255) DEFAULT NULL, - `circulating_market_cap` varchar(255) DEFAULT NULL, - `rise_speed` varchar(255) DEFAULT NULL, - `change_5min` varchar(255) DEFAULT NULL, - `change_ercent_60day` varchar(255) DEFAULT NULL, - `ytd_change_percent` varchar(255) DEFAULT NULL, + `last_price` decimal(20,2) DEFAULT NULL, + `change_percent` decimal(20,2) DEFAULT NULL, + `change_amount` decimal(20,2) DEFAULT NULL, + `volume` decimal(20,2) DEFAULT NULL, + `turnover` decimal(20,2) DEFAULT NULL, + `amplitude` decimal(20,2) DEFAULT NULL, + `high` decimal(20,2) DEFAULT NULL, + `low` decimal(20,2) DEFAULT NULL, + `open` decimal(20,2) DEFAULT NULL, + `closed` decimal(20,2) DEFAULT NULL, + `volume_ratio` decimal(20,2) DEFAULT NULL, + `turnover_rate` decimal(20,2) DEFAULT NULL, + `pe_ratio` decimal(20,2) DEFAULT NULL, + `pb_ratio` decimal(20,2) DEFAULT NULL, + `market_cap` decimal(20,2) DEFAULT NULL, + `circulating_market_cap` decimal(20,2) DEFAULT NULL, + `rise_speed` decimal(20,2) DEFAULT NULL, + `change_5min` decimal(20,2) DEFAULT NULL, + `change_ercent_60day` decimal(20,2) DEFAULT NULL, + `ytd_change_percent` decimal(20,2) DEFAULT NULL, PRIMARY KEY (`code`,`date`), KEY `idx_code` (`code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; @@ -37,12 +37,12 @@ CREATE TABLE IF NOT EXISTS `stock_lhb_ggtj_sina` ( `date` varchar(255) NOT NULL, `code` varchar(255) NOT NULL, `name` varchar(255) DEFAULT NULL, - `ranking_times` varchar(255) DEFAULT NULL, - `sum_buy` varchar(255) DEFAULT NULL, - `sum_sell` varchar(255) DEFAULT NULL, - `net_amount` varchar(255) DEFAULT NULL, - `buy_seat` varchar(255) DEFAULT NULL, - `sell_seat` varchar(255) DEFAULT NULL, + `ranking_times` decimal(20,2) DEFAULT NULL, + `sum_buy` decimal(20,2) DEFAULT NULL, + `sum_sell` decimal(20,2) DEFAULT NULL, + `net_amount` decimal(20,2) DEFAULT NULL, + `buy_seat` decimal(20,2) DEFAULT NULL, + `sell_seat` decimal(20,2) DEFAULT NULL, PRIMARY KEY (`code`,`date`), KEY `idx_code` (`code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; @@ -52,14 +52,14 @@ CREATE TABLE `stock_dzjy_mrtj` ( `date` varchar(255) NOT NULL, `code` varchar(255) NOT NULL, `name` varchar(255) DEFAULT NULL, - `quote_change` varchar(255) DEFAULT NULL, - `close_price` varchar(255) DEFAULT NULL, - `average_price` varchar(255) DEFAULT NULL, - `overflow_rate` varchar(255) DEFAULT NULL, - `trade_number` varchar(255) DEFAULT NULL, - `sum_volume` varchar(255) DEFAULT NULL, - `sum_turnover` varchar(255) DEFAULT NULL, - `turnover_market_rate` varchar(255) DEFAULT NULL, + `quote_change` decimal(20,2) DEFAULT NULL, + `close_price` decimal(20,2) DEFAULT NULL, + `average_price` decimal(20,2) DEFAULT NULL, + `overflow_rate` decimal(20,2) DEFAULT NULL, + `trade_number` decimal(20,2) DEFAULT NULL, + `sum_volume` decimal(20,2) DEFAULT NULL, + `sum_turnover` decimal(20,2) DEFAULT NULL, + `turnover_market_rate` decimal(20,2) DEFAULT NULL, PRIMARY KEY (`code`,`date`), KEY `idx_code` (`code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; @@ -69,42 +69,42 @@ CREATE TABLE `guess_indicators_daily` ( `date` varchar(255) NOT NULL, `code` varchar(255) NOT NULL, `name` varchar(255) DEFAULT NULL, - `last_price` varchar(255) DEFAULT NULL, - `change_percent` varchar(255) DEFAULT NULL, - `change_amount` varchar(255) DEFAULT NULL, - `volume` varchar(255) DEFAULT NULL, - `turnover` varchar(255) DEFAULT NULL, - `amplitude` varchar(255) DEFAULT NULL, - `high` varchar(255) DEFAULT NULL, - `low` varchar(255) DEFAULT NULL, - `open` varchar(255) DEFAULT NULL, - `closed` varchar(255) DEFAULT NULL, - `volume_ratio` varchar(255) DEFAULT NULL, - `turnover_rate` varchar(255) DEFAULT NULL, - `pe_ratio` varchar(255) DEFAULT NULL, - `pb_ratio` varchar(255) DEFAULT NULL, - `market_cap` varchar(255) DEFAULT NULL, - `circulating_market_cap` varchar(255) DEFAULT NULL, - `rise_speed` varchar(255) DEFAULT NULL, - `change_5min` varchar(255) DEFAULT NULL, - `change_ercent_60day` varchar(255) DEFAULT NULL, - `ytd_change_percent` varchar(255) DEFAULT NULL, - `boll` varchar(255) DEFAULT NULL, - `boll_lb` varchar(255) DEFAULT NULL, - `boll_ub` varchar(255) DEFAULT NULL, - `kdjd` varchar(255) DEFAULT NULL, - `kdjj` varchar(255) DEFAULT NULL, - `kdjk` varchar(255) DEFAULT NULL, - `macd` varchar(255) DEFAULT NULL, - `macdh` varchar(255) DEFAULT NULL, - `macds` varchar(255) DEFAULT NULL, - `pdi` varchar(255) DEFAULT NULL, - `trix` varchar(255) DEFAULT NULL, - `trix_9_sma` varchar(255) DEFAULT NULL, - `vr` varchar(255) DEFAULT NULL, - `vr_6_sma` varchar(255) DEFAULT NULL, - `wr_10` varchar(255) DEFAULT NULL, - `wr_6` varchar(255) DEFAULT NULL, + `last_price` decimal(20,2) DEFAULT NULL, + `change_percent` decimal(20,2) DEFAULT NULL, + `change_amount` decimal(20,2) DEFAULT NULL, + `volume` decimal(20,2) DEFAULT NULL, + `turnover` decimal(20,2) DEFAULT NULL, + `amplitude` decimal(20,2) DEFAULT NULL, + `high` decimal(20,2) DEFAULT NULL, + `low` decimal(20,2) DEFAULT NULL, + `open` decimal(20,2) DEFAULT NULL, + `closed` decimal(20,2) DEFAULT NULL, + `volume_ratio` decimal(20,2) DEFAULT NULL, + `turnover_rate` decimal(20,2) DEFAULT NULL, + `pe_ratio` decimal(20,2) DEFAULT NULL, + `pb_ratio` decimal(20,2) DEFAULT NULL, + `market_cap` decimal(20,2) DEFAULT NULL, + `circulating_market_cap` decimal(20,2) DEFAULT NULL, + `rise_speed` decimal(20,2) DEFAULT NULL, + `change_5min` decimal(20,2) DEFAULT NULL, + `change_ercent_60day` decimal(20,2) DEFAULT NULL, + `ytd_change_percent` decimal(20,2) DEFAULT NULL, + `boll` decimal(20,2) DEFAULT NULL, + `boll_lb` decimal(20,2) DEFAULT NULL, + `boll_ub` decimal(20,2) DEFAULT NULL, + `kdjd` decimal(20,2) DEFAULT NULL, + `kdjj` decimal(20,2) DEFAULT NULL, + `kdjk` decimal(20,2) DEFAULT NULL, + `macd` decimal(20,2) DEFAULT NULL, + `macdh` decimal(20,2) DEFAULT NULL, + `macds` decimal(20,2) DEFAULT NULL, + `pdi` decimal(20,2) DEFAULT NULL, + `trix` decimal(20,2) DEFAULT NULL, + `trix_9_sma` decimal(20,2) DEFAULT NULL, + `vr` decimal(20,2) DEFAULT NULL, + `vr_6_sma` decimal(20,2) DEFAULT NULL, + `wr_10` decimal(20,2) DEFAULT NULL, + `wr_6` decimal(20,2) DEFAULT NULL, PRIMARY KEY (`code`,`date`), KEY `idx_code` (`code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; @@ -114,42 +114,42 @@ CREATE TABLE `guess_indicators_lite_buy_daily` ( `date` varchar(255) NOT NULL, `code` varchar(255) NOT NULL, `name` varchar(255) DEFAULT NULL, - `last_price` varchar(255) DEFAULT NULL, - `change_percent` varchar(255) DEFAULT NULL, - `change_amount` varchar(255) DEFAULT NULL, - `volume` varchar(255) DEFAULT NULL, - `turnover` varchar(255) DEFAULT NULL, - `amplitude` varchar(255) DEFAULT NULL, - `high` varchar(255) DEFAULT NULL, - `low` varchar(255) DEFAULT NULL, - `open` varchar(255) DEFAULT NULL, - `closed` varchar(255) DEFAULT NULL, - `volume_ratio` varchar(255) DEFAULT NULL, - `turnover_rate` varchar(255) DEFAULT NULL, - `pe_ratio` varchar(255) DEFAULT NULL, - `pb_ratio` varchar(255) DEFAULT NULL, - `market_cap` varchar(255) DEFAULT NULL, - `circulating_market_cap` varchar(255) DEFAULT NULL, - `rise_speed` varchar(255) DEFAULT NULL, - `change_5min` varchar(255) DEFAULT NULL, - `change_ercent_60day` varchar(255) DEFAULT NULL, - `ytd_change_percent` varchar(255) DEFAULT NULL, - `boll` varchar(255) DEFAULT NULL, - `boll_lb` varchar(255) DEFAULT NULL, - `boll_ub` varchar(255) DEFAULT NULL, - `kdjd` varchar(255) DEFAULT NULL, - `kdjj` varchar(255) DEFAULT NULL, - `kdjk` varchar(255) DEFAULT NULL, - `macd` varchar(255) DEFAULT NULL, - `macdh` varchar(255) DEFAULT NULL, - `macds` varchar(255) DEFAULT NULL, - `pdi` varchar(255) DEFAULT NULL, - `trix` varchar(255) DEFAULT NULL, - `trix_9_sma` varchar(255) DEFAULT NULL, - `vr` varchar(255) DEFAULT NULL, - `vr_6_sma` varchar(255) DEFAULT NULL, - `wr_10` varchar(255) DEFAULT NULL, - `wr_6` varchar(255) DEFAULT NULL, + `last_price` decimal(20,2) DEFAULT NULL, + `change_percent` decimal(20,2) DEFAULT NULL, + `change_amount` decimal(20,2) DEFAULT NULL, + `volume` decimal(20,2) DEFAULT NULL, + `turnover` decimal(20,2) DEFAULT NULL, + `amplitude` decimal(20,2) DEFAULT NULL, + `high` decimal(20,2) DEFAULT NULL, + `low` decimal(20,2) DEFAULT NULL, + `open` decimal(20,2) DEFAULT NULL, + `closed` decimal(20,2) DEFAULT NULL, + `volume_ratio` decimal(20,2) DEFAULT NULL, + `turnover_rate` decimal(20,2) DEFAULT NULL, + `pe_ratio` decimal(20,2) DEFAULT NULL, + `pb_ratio` decimal(20,2) DEFAULT NULL, + `market_cap` decimal(20,2) DEFAULT NULL, + `circulating_market_cap` decimal(20,2) DEFAULT NULL, + `rise_speed` decimal(20,2) DEFAULT NULL, + `change_5min` decimal(20,2) DEFAULT NULL, + `change_ercent_60day` decimal(20,2) DEFAULT NULL, + `ytd_change_percent` decimal(20,2) DEFAULT NULL, + `boll` decimal(20,2) DEFAULT NULL, + `boll_lb` decimal(20,2) DEFAULT NULL, + `boll_ub` decimal(20,2) DEFAULT NULL, + `kdjd` decimal(20,2) DEFAULT NULL, + `kdjj` decimal(20,2) DEFAULT NULL, + `kdjk` decimal(20,2) DEFAULT NULL, + `macd` decimal(20,2) DEFAULT NULL, + `macdh` decimal(20,2) DEFAULT NULL, + `macds` decimal(20,2) DEFAULT NULL, + `pdi` decimal(20,2) DEFAULT NULL, + `trix` decimal(20,2) DEFAULT NULL, + `trix_9_sma` decimal(20,2) DEFAULT NULL, + `vr` decimal(20,2) DEFAULT NULL, + `vr_6_sma` decimal(20,2) DEFAULT NULL, + `wr_10` decimal(20,2) DEFAULT NULL, + `wr_6` decimal(20,2) DEFAULT NULL, PRIMARY KEY (`code`,`date`), KEY `idx_code` (`code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; @@ -159,42 +159,42 @@ CREATE TABLE `guess_indicators_lite_sell_daily` ( `date` varchar(255) NOT NULL, `code` varchar(255) NOT NULL, `name` varchar(255) DEFAULT NULL, - `last_price` varchar(255) DEFAULT NULL, - `change_percent` varchar(255) DEFAULT NULL, - `change_amount` varchar(255) DEFAULT NULL, - `volume` varchar(255) DEFAULT NULL, - `turnover` varchar(255) DEFAULT NULL, - `amplitude` varchar(255) DEFAULT NULL, - `high` varchar(255) DEFAULT NULL, - `low` varchar(255) DEFAULT NULL, - `open` varchar(255) DEFAULT NULL, - `closed` varchar(255) DEFAULT NULL, - `volume_ratio` varchar(255) DEFAULT NULL, - `turnover_rate` varchar(255) DEFAULT NULL, - `pe_ratio` varchar(255) DEFAULT NULL, - `pb_ratio` varchar(255) DEFAULT NULL, - `market_cap` varchar(255) DEFAULT NULL, - `circulating_market_cap` varchar(255) DEFAULT NULL, - `rise_speed` varchar(255) DEFAULT NULL, - `change_5min` varchar(255) DEFAULT NULL, - `change_ercent_60day` varchar(255) DEFAULT NULL, - `ytd_change_percent` varchar(255) DEFAULT NULL, - `boll` varchar(255) DEFAULT NULL, - `boll_lb` varchar(255) DEFAULT NULL, - `boll_ub` varchar(255) DEFAULT NULL, - `kdjd` varchar(255) DEFAULT NULL, - `kdjj` varchar(255) DEFAULT NULL, - `kdjk` varchar(255) DEFAULT NULL, - `macd` varchar(255) DEFAULT NULL, - `macdh` varchar(255) DEFAULT NULL, - `macds` varchar(255) DEFAULT NULL, - `pdi` varchar(255) DEFAULT NULL, - `trix` varchar(255) DEFAULT NULL, - `trix_9_sma` varchar(255) DEFAULT NULL, - `vr` varchar(255) DEFAULT NULL, - `vr_6_sma` varchar(255) DEFAULT NULL, - `wr_10` varchar(255) DEFAULT NULL, - `wr_6` varchar(255) DEFAULT NULL, + `last_price` decimal(20,2) DEFAULT NULL, + `change_percent` decimal(20,2) DEFAULT NULL, + `change_amount` decimal(20,2) DEFAULT NULL, + `volume` decimal(20,2) DEFAULT NULL, + `turnover` decimal(20,2) DEFAULT NULL, + `amplitude` decimal(20,2) DEFAULT NULL, + `high` decimal(20,2) DEFAULT NULL, + `low` decimal(20,2) DEFAULT NULL, + `open` decimal(20,2) DEFAULT NULL, + `closed` decimal(20,2) DEFAULT NULL, + `volume_ratio` decimal(20,2) DEFAULT NULL, + `turnover_rate` decimal(20,2) DEFAULT NULL, + `pe_ratio` decimal(20,2) DEFAULT NULL, + `pb_ratio` decimal(20,2) DEFAULT NULL, + `market_cap` decimal(20,2) DEFAULT NULL, + `circulating_market_cap` decimal(20,2) DEFAULT NULL, + `rise_speed` decimal(20,2) DEFAULT NULL, + `change_5min` decimal(20,2) DEFAULT NULL, + `change_ercent_60day` decimal(20,2) DEFAULT NULL, + `ytd_change_percent` decimal(20,2) DEFAULT NULL, + `boll` decimal(20,2) DEFAULT NULL, + `boll_lb` decimal(20,2) DEFAULT NULL, + `boll_ub` decimal(20,2) DEFAULT NULL, + `kdjd` decimal(20,2) DEFAULT NULL, + `kdjj` decimal(20,2) DEFAULT NULL, + `kdjk` decimal(20,2) DEFAULT NULL, + `macd` decimal(20,2) DEFAULT NULL, + `macdh` decimal(20,2) DEFAULT NULL, + `macds` decimal(20,2) DEFAULT NULL, + `pdi` decimal(20,2) DEFAULT NULL, + `trix` decimal(20,2) DEFAULT NULL, + `trix_9_sma` decimal(20,2) DEFAULT NULL, + `vr` decimal(20,2) DEFAULT NULL, + `vr_6_sma` decimal(20,2) DEFAULT NULL, + `wr_10` decimal(20,2) DEFAULT NULL, + `wr_6` decimal(20,2) DEFAULT NULL, PRIMARY KEY (`code`,`date`), KEY `idx_code` (`code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; -- Gitee From d455e22b52dceed1fe2eaa9b05e49a506d1e40b5 Mon Sep 17 00:00:00 2001 From: freegolang Date: Thu, 27 Feb 2025 23:21:48 +0800 Subject: [PATCH 08/14] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 5 + docker-compose/mysql/init.sql | 284 +++++++++++++++++----------------- 2 files changed, 147 insertions(+), 142 deletions(-) diff --git a/README.md b/README.md index 29f9f21..d64994c 100644 --- a/README.md +++ b/README.md @@ -183,6 +183,11 @@ http://docs.sqlalchemy.org/en/latest/core/reflection.html ## 更新日志 +### 版本进行镜像升级 2025-02-28 + +存储数据格式为 double 方便进行排序,decimal 类型转换出问题。 +拆分生产部署,切换成nginx,前端进行编译构建。提高前端加载速度。 + ### 16 更新发布 2.1 版本进行镜像升级 2023-06-03 diff --git a/docker-compose/mysql/init.sql b/docker-compose/mysql/init.sql index 8ada9df..c2d19de 100644 --- a/docker-compose/mysql/init.sql +++ b/docker-compose/mysql/init.sql @@ -9,26 +9,26 @@ CREATE TABLE IF NOT EXISTS `stock_zh_a_spot_em` ( `date` varchar(255) NOT NULL, `code` varchar(255) NOT NULL, `name` varchar(255) DEFAULT NULL, - `last_price` decimal(20,2) DEFAULT NULL, - `change_percent` decimal(20,2) DEFAULT NULL, - `change_amount` decimal(20,2) DEFAULT NULL, - `volume` decimal(20,2) DEFAULT NULL, - `turnover` decimal(20,2) DEFAULT NULL, - `amplitude` decimal(20,2) DEFAULT NULL, - `high` decimal(20,2) DEFAULT NULL, - `low` decimal(20,2) DEFAULT NULL, - `open` decimal(20,2) DEFAULT NULL, - `closed` decimal(20,2) DEFAULT NULL, - `volume_ratio` decimal(20,2) DEFAULT NULL, - `turnover_rate` decimal(20,2) DEFAULT NULL, - `pe_ratio` decimal(20,2) DEFAULT NULL, - `pb_ratio` decimal(20,2) DEFAULT NULL, - `market_cap` decimal(20,2) DEFAULT NULL, - `circulating_market_cap` decimal(20,2) DEFAULT NULL, - `rise_speed` decimal(20,2) DEFAULT NULL, - `change_5min` decimal(20,2) DEFAULT NULL, - `change_ercent_60day` decimal(20,2) DEFAULT NULL, - `ytd_change_percent` decimal(20,2) DEFAULT NULL, + `last_price` double(20,2) DEFAULT NULL, + `change_percent` double(20,2) DEFAULT NULL, + `change_amount` double(20,2) DEFAULT NULL, + `volume` double(20,2) DEFAULT NULL, + `turnover` double(20,2) DEFAULT NULL, + `amplitude` double(20,2) DEFAULT NULL, + `high` double(20,2) DEFAULT NULL, + `low` double(20,2) DEFAULT NULL, + `open` double(20,2) DEFAULT NULL, + `closed` double(20,2) DEFAULT NULL, + `volume_ratio` double(20,2) DEFAULT NULL, + `turnover_rate` double(20,2) DEFAULT NULL, + `pe_ratio` double(20,2) DEFAULT NULL, + `pb_ratio` double(20,2) DEFAULT NULL, + `market_cap` double(20,2) DEFAULT NULL, + `circulating_market_cap` double(20,2) DEFAULT NULL, + `rise_speed` double(20,2) DEFAULT NULL, + `change_5min` double(20,2) DEFAULT NULL, + `change_ercent_60day` double(20,2) DEFAULT NULL, + `ytd_change_percent` double(20,2) DEFAULT NULL, PRIMARY KEY (`code`,`date`), KEY `idx_code` (`code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; @@ -37,12 +37,12 @@ CREATE TABLE IF NOT EXISTS `stock_lhb_ggtj_sina` ( `date` varchar(255) NOT NULL, `code` varchar(255) NOT NULL, `name` varchar(255) DEFAULT NULL, - `ranking_times` decimal(20,2) DEFAULT NULL, - `sum_buy` decimal(20,2) DEFAULT NULL, - `sum_sell` decimal(20,2) DEFAULT NULL, - `net_amount` decimal(20,2) DEFAULT NULL, - `buy_seat` decimal(20,2) DEFAULT NULL, - `sell_seat` decimal(20,2) DEFAULT NULL, + `ranking_times` double(20,2) DEFAULT NULL, + `sum_buy` double(20,2) DEFAULT NULL, + `sum_sell` double(20,2) DEFAULT NULL, + `net_amount` double(20,2) DEFAULT NULL, + `buy_seat` double(20,2) DEFAULT NULL, + `sell_seat` double(20,2) DEFAULT NULL, PRIMARY KEY (`code`,`date`), KEY `idx_code` (`code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; @@ -52,14 +52,14 @@ CREATE TABLE `stock_dzjy_mrtj` ( `date` varchar(255) NOT NULL, `code` varchar(255) NOT NULL, `name` varchar(255) DEFAULT NULL, - `quote_change` decimal(20,2) DEFAULT NULL, - `close_price` decimal(20,2) DEFAULT NULL, - `average_price` decimal(20,2) DEFAULT NULL, - `overflow_rate` decimal(20,2) DEFAULT NULL, - `trade_number` decimal(20,2) DEFAULT NULL, - `sum_volume` decimal(20,2) DEFAULT NULL, - `sum_turnover` decimal(20,2) DEFAULT NULL, - `turnover_market_rate` decimal(20,2) DEFAULT NULL, + `quote_change` double(20,2) DEFAULT NULL, + `close_price` double(20,2) DEFAULT NULL, + `average_price` double(20,2) DEFAULT NULL, + `overflow_rate` double(20,2) DEFAULT NULL, + `trade_number` double(20,2) DEFAULT NULL, + `sum_volume` double(20,2) DEFAULT NULL, + `sum_turnover` double(20,2) DEFAULT NULL, + `turnover_market_rate` double(20,2) DEFAULT NULL, PRIMARY KEY (`code`,`date`), KEY `idx_code` (`code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; @@ -69,42 +69,42 @@ CREATE TABLE `guess_indicators_daily` ( `date` varchar(255) NOT NULL, `code` varchar(255) NOT NULL, `name` varchar(255) DEFAULT NULL, - `last_price` decimal(20,2) DEFAULT NULL, - `change_percent` decimal(20,2) DEFAULT NULL, - `change_amount` decimal(20,2) DEFAULT NULL, - `volume` decimal(20,2) DEFAULT NULL, - `turnover` decimal(20,2) DEFAULT NULL, - `amplitude` decimal(20,2) DEFAULT NULL, - `high` decimal(20,2) DEFAULT NULL, - `low` decimal(20,2) DEFAULT NULL, - `open` decimal(20,2) DEFAULT NULL, - `closed` decimal(20,2) DEFAULT NULL, - `volume_ratio` decimal(20,2) DEFAULT NULL, - `turnover_rate` decimal(20,2) DEFAULT NULL, - `pe_ratio` decimal(20,2) DEFAULT NULL, - `pb_ratio` decimal(20,2) DEFAULT NULL, - `market_cap` decimal(20,2) DEFAULT NULL, - `circulating_market_cap` decimal(20,2) DEFAULT NULL, - `rise_speed` decimal(20,2) DEFAULT NULL, - `change_5min` decimal(20,2) DEFAULT NULL, - `change_ercent_60day` decimal(20,2) DEFAULT NULL, - `ytd_change_percent` decimal(20,2) DEFAULT NULL, - `boll` decimal(20,2) DEFAULT NULL, - `boll_lb` decimal(20,2) DEFAULT NULL, - `boll_ub` decimal(20,2) DEFAULT NULL, - `kdjd` decimal(20,2) DEFAULT NULL, - `kdjj` decimal(20,2) DEFAULT NULL, - `kdjk` decimal(20,2) DEFAULT NULL, - `macd` decimal(20,2) DEFAULT NULL, - `macdh` decimal(20,2) DEFAULT NULL, - `macds` decimal(20,2) DEFAULT NULL, - `pdi` decimal(20,2) DEFAULT NULL, - `trix` decimal(20,2) DEFAULT NULL, - `trix_9_sma` decimal(20,2) DEFAULT NULL, - `vr` decimal(20,2) DEFAULT NULL, - `vr_6_sma` decimal(20,2) DEFAULT NULL, - `wr_10` decimal(20,2) DEFAULT NULL, - `wr_6` decimal(20,2) DEFAULT NULL, + `last_price` double(20,2) DEFAULT NULL, + `change_percent` double(20,2) DEFAULT NULL, + `change_amount` double(20,2) DEFAULT NULL, + `volume` double(20,2) DEFAULT NULL, + `turnover` double(20,2) DEFAULT NULL, + `amplitude` double(20,2) DEFAULT NULL, + `high` double(20,2) DEFAULT NULL, + `low` double(20,2) DEFAULT NULL, + `open` double(20,2) DEFAULT NULL, + `closed` double(20,2) DEFAULT NULL, + `volume_ratio` double(20,2) DEFAULT NULL, + `turnover_rate` double(20,2) DEFAULT NULL, + `pe_ratio` double(20,2) DEFAULT NULL, + `pb_ratio` double(20,2) DEFAULT NULL, + `market_cap` double(20,2) DEFAULT NULL, + `circulating_market_cap` double(20,2) DEFAULT NULL, + `rise_speed` double(20,2) DEFAULT NULL, + `change_5min` double(20,2) DEFAULT NULL, + `change_ercent_60day` double(20,2) DEFAULT NULL, + `ytd_change_percent` double(20,2) DEFAULT NULL, + `boll` double(20,2) DEFAULT NULL, + `boll_lb` double(20,2) DEFAULT NULL, + `boll_ub` double(20,2) DEFAULT NULL, + `kdjd` double(20,2) DEFAULT NULL, + `kdjj` double(20,2) DEFAULT NULL, + `kdjk` double(20,2) DEFAULT NULL, + `macd` double(20,2) DEFAULT NULL, + `macdh` double(20,2) DEFAULT NULL, + `macds` double(20,2) DEFAULT NULL, + `pdi` double(20,2) DEFAULT NULL, + `trix` double(20,2) DEFAULT NULL, + `trix_9_sma` double(20,2) DEFAULT NULL, + `vr` double(20,2) DEFAULT NULL, + `vr_6_sma` double(20,2) DEFAULT NULL, + `wr_10` double(20,2) DEFAULT NULL, + `wr_6` double(20,2) DEFAULT NULL, PRIMARY KEY (`code`,`date`), KEY `idx_code` (`code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; @@ -114,42 +114,42 @@ CREATE TABLE `guess_indicators_lite_buy_daily` ( `date` varchar(255) NOT NULL, `code` varchar(255) NOT NULL, `name` varchar(255) DEFAULT NULL, - `last_price` decimal(20,2) DEFAULT NULL, - `change_percent` decimal(20,2) DEFAULT NULL, - `change_amount` decimal(20,2) DEFAULT NULL, - `volume` decimal(20,2) DEFAULT NULL, - `turnover` decimal(20,2) DEFAULT NULL, - `amplitude` decimal(20,2) DEFAULT NULL, - `high` decimal(20,2) DEFAULT NULL, - `low` decimal(20,2) DEFAULT NULL, - `open` decimal(20,2) DEFAULT NULL, - `closed` decimal(20,2) DEFAULT NULL, - `volume_ratio` decimal(20,2) DEFAULT NULL, - `turnover_rate` decimal(20,2) DEFAULT NULL, - `pe_ratio` decimal(20,2) DEFAULT NULL, - `pb_ratio` decimal(20,2) DEFAULT NULL, - `market_cap` decimal(20,2) DEFAULT NULL, - `circulating_market_cap` decimal(20,2) DEFAULT NULL, - `rise_speed` decimal(20,2) DEFAULT NULL, - `change_5min` decimal(20,2) DEFAULT NULL, - `change_ercent_60day` decimal(20,2) DEFAULT NULL, - `ytd_change_percent` decimal(20,2) DEFAULT NULL, - `boll` decimal(20,2) DEFAULT NULL, - `boll_lb` decimal(20,2) DEFAULT NULL, - `boll_ub` decimal(20,2) DEFAULT NULL, - `kdjd` decimal(20,2) DEFAULT NULL, - `kdjj` decimal(20,2) DEFAULT NULL, - `kdjk` decimal(20,2) DEFAULT NULL, - `macd` decimal(20,2) DEFAULT NULL, - `macdh` decimal(20,2) DEFAULT NULL, - `macds` decimal(20,2) DEFAULT NULL, - `pdi` decimal(20,2) DEFAULT NULL, - `trix` decimal(20,2) DEFAULT NULL, - `trix_9_sma` decimal(20,2) DEFAULT NULL, - `vr` decimal(20,2) DEFAULT NULL, - `vr_6_sma` decimal(20,2) DEFAULT NULL, - `wr_10` decimal(20,2) DEFAULT NULL, - `wr_6` decimal(20,2) DEFAULT NULL, + `last_price` double(20,2) DEFAULT NULL, + `change_percent` double(20,2) DEFAULT NULL, + `change_amount` double(20,2) DEFAULT NULL, + `volume` double(20,2) DEFAULT NULL, + `turnover` double(20,2) DEFAULT NULL, + `amplitude` double(20,2) DEFAULT NULL, + `high` double(20,2) DEFAULT NULL, + `low` double(20,2) DEFAULT NULL, + `open` double(20,2) DEFAULT NULL, + `closed` double(20,2) DEFAULT NULL, + `volume_ratio` double(20,2) DEFAULT NULL, + `turnover_rate` double(20,2) DEFAULT NULL, + `pe_ratio` double(20,2) DEFAULT NULL, + `pb_ratio` double(20,2) DEFAULT NULL, + `market_cap` double(20,2) DEFAULT NULL, + `circulating_market_cap` double(20,2) DEFAULT NULL, + `rise_speed` double(20,2) DEFAULT NULL, + `change_5min` double(20,2) DEFAULT NULL, + `change_ercent_60day` double(20,2) DEFAULT NULL, + `ytd_change_percent` double(20,2) DEFAULT NULL, + `boll` double(20,2) DEFAULT NULL, + `boll_lb` double(20,2) DEFAULT NULL, + `boll_ub` double(20,2) DEFAULT NULL, + `kdjd` double(20,2) DEFAULT NULL, + `kdjj` double(20,2) DEFAULT NULL, + `kdjk` double(20,2) DEFAULT NULL, + `macd` double(20,2) DEFAULT NULL, + `macdh` double(20,2) DEFAULT NULL, + `macds` double(20,2) DEFAULT NULL, + `pdi` double(20,2) DEFAULT NULL, + `trix` double(20,2) DEFAULT NULL, + `trix_9_sma` double(20,2) DEFAULT NULL, + `vr` double(20,2) DEFAULT NULL, + `vr_6_sma` double(20,2) DEFAULT NULL, + `wr_10` double(20,2) DEFAULT NULL, + `wr_6` double(20,2) DEFAULT NULL, PRIMARY KEY (`code`,`date`), KEY `idx_code` (`code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; @@ -159,42 +159,42 @@ CREATE TABLE `guess_indicators_lite_sell_daily` ( `date` varchar(255) NOT NULL, `code` varchar(255) NOT NULL, `name` varchar(255) DEFAULT NULL, - `last_price` decimal(20,2) DEFAULT NULL, - `change_percent` decimal(20,2) DEFAULT NULL, - `change_amount` decimal(20,2) DEFAULT NULL, - `volume` decimal(20,2) DEFAULT NULL, - `turnover` decimal(20,2) DEFAULT NULL, - `amplitude` decimal(20,2) DEFAULT NULL, - `high` decimal(20,2) DEFAULT NULL, - `low` decimal(20,2) DEFAULT NULL, - `open` decimal(20,2) DEFAULT NULL, - `closed` decimal(20,2) DEFAULT NULL, - `volume_ratio` decimal(20,2) DEFAULT NULL, - `turnover_rate` decimal(20,2) DEFAULT NULL, - `pe_ratio` decimal(20,2) DEFAULT NULL, - `pb_ratio` decimal(20,2) DEFAULT NULL, - `market_cap` decimal(20,2) DEFAULT NULL, - `circulating_market_cap` decimal(20,2) DEFAULT NULL, - `rise_speed` decimal(20,2) DEFAULT NULL, - `change_5min` decimal(20,2) DEFAULT NULL, - `change_ercent_60day` decimal(20,2) DEFAULT NULL, - `ytd_change_percent` decimal(20,2) DEFAULT NULL, - `boll` decimal(20,2) DEFAULT NULL, - `boll_lb` decimal(20,2) DEFAULT NULL, - `boll_ub` decimal(20,2) DEFAULT NULL, - `kdjd` decimal(20,2) DEFAULT NULL, - `kdjj` decimal(20,2) DEFAULT NULL, - `kdjk` decimal(20,2) DEFAULT NULL, - `macd` decimal(20,2) DEFAULT NULL, - `macdh` decimal(20,2) DEFAULT NULL, - `macds` decimal(20,2) DEFAULT NULL, - `pdi` decimal(20,2) DEFAULT NULL, - `trix` decimal(20,2) DEFAULT NULL, - `trix_9_sma` decimal(20,2) DEFAULT NULL, - `vr` decimal(20,2) DEFAULT NULL, - `vr_6_sma` decimal(20,2) DEFAULT NULL, - `wr_10` decimal(20,2) DEFAULT NULL, - `wr_6` decimal(20,2) DEFAULT NULL, + `last_price` double(20,2) DEFAULT NULL, + `change_percent` double(20,2) DEFAULT NULL, + `change_amount` double(20,2) DEFAULT NULL, + `volume` double(20,2) DEFAULT NULL, + `turnover` double(20,2) DEFAULT NULL, + `amplitude` double(20,2) DEFAULT NULL, + `high` double(20,2) DEFAULT NULL, + `low` double(20,2) DEFAULT NULL, + `open` double(20,2) DEFAULT NULL, + `closed` double(20,2) DEFAULT NULL, + `volume_ratio` double(20,2) DEFAULT NULL, + `turnover_rate` double(20,2) DEFAULT NULL, + `pe_ratio` double(20,2) DEFAULT NULL, + `pb_ratio` double(20,2) DEFAULT NULL, + `market_cap` double(20,2) DEFAULT NULL, + `circulating_market_cap` double(20,2) DEFAULT NULL, + `rise_speed` double(20,2) DEFAULT NULL, + `change_5min` double(20,2) DEFAULT NULL, + `change_ercent_60day` double(20,2) DEFAULT NULL, + `ytd_change_percent` double(20,2) DEFAULT NULL, + `boll` double(20,2) DEFAULT NULL, + `boll_lb` double(20,2) DEFAULT NULL, + `boll_ub` double(20,2) DEFAULT NULL, + `kdjd` double(20,2) DEFAULT NULL, + `kdjj` double(20,2) DEFAULT NULL, + `kdjk` double(20,2) DEFAULT NULL, + `macd` double(20,2) DEFAULT NULL, + `macdh` double(20,2) DEFAULT NULL, + `macds` double(20,2) DEFAULT NULL, + `pdi` double(20,2) DEFAULT NULL, + `trix` double(20,2) DEFAULT NULL, + `trix_9_sma` double(20,2) DEFAULT NULL, + `vr` double(20,2) DEFAULT NULL, + `vr_6_sma` double(20,2) DEFAULT NULL, + `wr_10` double(20,2) DEFAULT NULL, + `wr_6` double(20,2) DEFAULT NULL, PRIMARY KEY (`code`,`date`), KEY `idx_code` (`code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; -- Gitee From d3803d46076f02c19ebeda4d8ad4087cdc889740 Mon Sep 17 00:00:00 2001 From: freegolang Date: Thu, 27 Feb 2025 23:24:44 +0800 Subject: [PATCH 09/14] =?UTF-8?q?fix:=20=E5=88=87=E5=88=86=E5=90=AF?= =?UTF-8?q?=E5=8A=A8=E6=96=B9=E6=B3=95=EF=BC=8Cdev=E5=92=8C=20build?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose/docker-compose.yml | 2 +- frontend/docker-build.sh | 20 ++++++++++++++++++++ frontend/docker-entrypoint.sh | 2 +- 3 files changed, 22 insertions(+), 2 deletions(-) create mode 100755 frontend/docker-build.sh diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index 50bd288..18d5872 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -21,7 +21,7 @@ services: networks: stock-dev-network: {} # 入口写死,手动启动应用。每次构建时候使用,构建完成结束 - entrypoint: /usr/src/app/docker-entrypoint.sh + entrypoint: /usr/src/app/docker-build.sh nginx: image: docker.m.daocloud.io/library/nginx:stable-alpine container_name: nginx diff --git a/frontend/docker-build.sh b/frontend/docker-build.sh new file mode 100755 index 0000000..fc21f7f --- /dev/null +++ b/frontend/docker-build.sh @@ -0,0 +1,20 @@ +#!/bin/sh + +sleep 1 +# 只依赖启动。 +cd /usr/src/app + +#!/bin/bash + +# 定义要检查的文件夹路径 +modules_path="/usr/src/app/node_modules" + +# 使用[ ]检查文件夹是否存在 +if [ -d "$modules_path" ]; then + echo "文件夹 $modules_path 存在" +else + echo "文件夹 $modules_path 不存在,执行 install 安装" + npm install --registry=https://registry.npmmirror.com +fi + +npm run build diff --git a/frontend/docker-entrypoint.sh b/frontend/docker-entrypoint.sh index b72888e..064898f 100755 --- a/frontend/docker-entrypoint.sh +++ b/frontend/docker-entrypoint.sh @@ -17,5 +17,5 @@ else npm install --registry=https://registry.npmmirror.com fi -npm run build +npm run dev sleep 999999d -- Gitee From 607c390e25de49542eb057988eae4faf8422c9f6 Mon Sep 17 00:00:00 2001 From: freegolang Date: Fri, 28 Feb 2025 06:42:42 +0800 Subject: [PATCH 10/14] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=20dokcer=20?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=EF=BC=8C=E8=A7=A3=E5=86=B3?= =?UTF-8?q?nginx=20=E5=92=8C=E5=89=8D=E7=AB=AF=E7=BC=96=E8=AF=91=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + docker-compose/docker-compose.yml | 5 +++-- frontend/docker-build.sh | 3 +++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d64994c..ba7f95c 100644 --- a/README.md +++ b/README.md @@ -187,6 +187,7 @@ http://docs.sqlalchemy.org/en/latest/core/reflection.html 存储数据格式为 double 方便进行排序,decimal 类型转换出问题。 拆分生产部署,切换成nginx,前端进行编译构建。提高前端加载速度。 +nginx的html影射到./data/html目录,前端编译完成需要拷贝文件到html,等待完成即可。 ### 16 更新发布 2.1 版本进行镜像升级 2023-06-03 diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index 18d5872..00a454f 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -13,8 +13,9 @@ services: dockerfile: docker/DevFrontendDockerfile container_name: frontend-build volumes: - # 设置开发目录,方便开发调试 + # 设置开发目录,方便开发调试,生产环境拷贝到 /data/html - "../frontend:/usr/src/app" + - "./data/html:/data/html" environment: LANG: zh_CN.UTF-8 LC_CTYPE: zh_CN.UTF-8 @@ -29,7 +30,7 @@ services: - "8080:8080" volumes: # 设置开发目录,方便开发调试 - - "../frontend/dist:/usr/share/nginx/html" + - "./data/html:/usr/share/nginx/html" - "./nginx/nginx.conf:/etc/nginx/conf.d/default.conf" environment: LANG: zh_CN.UTF-8 diff --git a/frontend/docker-build.sh b/frontend/docker-build.sh index fc21f7f..4c6c828 100755 --- a/frontend/docker-build.sh +++ b/frontend/docker-build.sh @@ -18,3 +18,6 @@ else fi npm run build +# 编译完成之后拷贝 html 资源到 影射目录,等待即可。 +cp -r ./dist/* /data/html/ +echo "######### build finish and cp all html #########" \ No newline at end of file -- Gitee From 6c7d240167885192178702ece9a32e17d6b70527 Mon Sep 17 00:00:00 2001 From: freegolang Date: Fri, 28 Feb 2025 06:47:28 +0800 Subject: [PATCH 11/14] =?UTF-8?q?fix:=20=E6=AF=8F=E6=AC=A1=E6=B8=85?= =?UTF-8?q?=E7=A9=BA=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/docker-build.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/frontend/docker-build.sh b/frontend/docker-build.sh index 4c6c828..ceae844 100755 --- a/frontend/docker-build.sh +++ b/frontend/docker-build.sh @@ -18,6 +18,7 @@ else fi npm run build -# 编译完成之后拷贝 html 资源到 影射目录,等待即可。 +# 编译完成之后拷贝 html 资源到 影射目录,等待即可。每次编译前都清空内容。 +rm -rf /data/html/* cp -r ./dist/* /data/html/ echo "######### build finish and cp all html #########" \ No newline at end of file -- Gitee From 7ab6675e4630bda65126a777298bb7500c002637 Mon Sep 17 00:00:00 2001 From: freegolang Date: Fri, 28 Feb 2025 22:40:36 +0800 Subject: [PATCH 12/14] =?UTF-8?q?fix:=20=E8=A7=A3=E5=86=B3=E5=90=AF?= =?UTF-8?q?=E5=8A=A8=E9=97=AE=E9=A2=98=E3=80=82=E6=8B=86=E5=88=86=E8=84=9A?= =?UTF-8?q?=E6=9C=AC=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/jobs/cron.daily/run_daily | 0 backend/jobs/cron.hourly/run_hourly | 0 backend/jobs/cron.minutely/run_1minute | 3 --- backend/jobs/cron.monthly/run_monthly | 0 backend/jobs/crontab | 6 ++++++ backend/jobs/run_cron.sh | 24 ++++++++++++++++++++++++ backend/jobs/run_init.sh | 4 ++-- backend/supervisor/supervisord.conf | 12 +++++++++++- docker-compose/dev-docker-compose.yml | 5 +++++ docker-compose/docker-compose.yml | 5 +++++ 10 files changed, 53 insertions(+), 6 deletions(-) mode change 100644 => 100755 backend/jobs/cron.daily/run_daily mode change 100644 => 100755 backend/jobs/cron.hourly/run_hourly mode change 100644 => 100755 backend/jobs/cron.minutely/run_1minute mode change 100644 => 100755 backend/jobs/cron.monthly/run_monthly create mode 100644 backend/jobs/crontab create mode 100755 backend/jobs/run_cron.sh diff --git a/backend/jobs/cron.daily/run_daily b/backend/jobs/cron.daily/run_daily old mode 100644 new mode 100755 diff --git a/backend/jobs/cron.hourly/run_hourly b/backend/jobs/cron.hourly/run_hourly old mode 100644 new mode 100755 diff --git a/backend/jobs/cron.minutely/run_1minute b/backend/jobs/cron.minutely/run_1minute old mode 100644 new mode 100755 index 5ca98a6..3485fdd --- a/backend/jobs/cron.minutely/run_1minute +++ b/backend/jobs/cron.minutely/run_1minute @@ -3,6 +3,3 @@ mkdir -p /data/logs DATE=`date +%Y-%m-%d:%H:%M:%S` echo $DATE >> /data/logs/1min.log -echo MYSQL_HOST $MYSQL_HOST >> /data/logs/1min.log -echo MYSQL_USER $MYSQL_USER >> /data/logs/1min.log -echo MYSQL_DB $MYSQL_DB >> /data/logs/1min.log diff --git a/backend/jobs/cron.monthly/run_monthly b/backend/jobs/cron.monthly/run_monthly old mode 100644 new mode 100755 diff --git a/backend/jobs/crontab b/backend/jobs/crontab new file mode 100644 index 0000000..c6b7efb --- /dev/null +++ b/backend/jobs/crontab @@ -0,0 +1,6 @@ +SHELL=/bin/sh +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin +*/1 * * * * /bin/run-parts /etc/cron.minutely +10 * * * * /bin/run-parts /etc/cron.hourly +30 16 * * * /bin/run-parts /etc/cron.daily +30 17 1,10,20 * * /bin/run-parts /etc/cron.monthly diff --git a/backend/jobs/run_cron.sh b/backend/jobs/run_cron.sh new file mode 100755 index 0000000..c3fc8c6 --- /dev/null +++ b/backend/jobs/run_cron.sh @@ -0,0 +1,24 @@ +#!/bin/sh + +export PYTHONIOENCODING=utf-8 +export LANG=zh_CN.UTF-8 +export PYTHONPATH=/data/stock +export LC_CTYPE=zh_CN.UTF-8 + +mkdir -p /data/logs/tensorflow + + + +DATE=`date +%Y-%m-%d:%H:%M:%S` + +echo $DATE >> /data/logs/run_cron.log + +# 解决定时任务不启动问题,因为权限导致 +chmod 755 /etc/cron.minutely/* && chmod 755 /etc/cron.hourly/* +chmod 755 /etc/cron.daily/* && chmod 755 /etc/cron.monthly/* + +# 配置文件每次都设置权限 +chmod 600 /var/spool/cron/crontabs/root + +#启动cron服务。在前台 +/usr/sbin/cron -f \ No newline at end of file diff --git a/backend/jobs/run_init.sh b/backend/jobs/run_init.sh index c993088..8dd5560 100755 --- a/backend/jobs/run_init.sh +++ b/backend/jobs/run_init.sh @@ -25,5 +25,5 @@ printenv | grep -v "no_proxy" >> /etc/environment # 第一次后台执行日数据。 nohup bash /data/stock/jobs/cron.daily/run_daily & -#启动cron服务。在前台 -/usr/sbin/cron -f \ No newline at end of file +#防止 supervisor 重复执行 +sleep 999999d \ No newline at end of file diff --git a/backend/supervisor/supervisord.conf b/backend/supervisor/supervisord.conf index 7ff09c1..fb49c71 100644 --- a/backend/supervisor/supervisord.conf +++ b/backend/supervisor/supervisord.conf @@ -22,7 +22,7 @@ supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface [supervisorctl] serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL for a unix socket -[program:init_and_cron] +[program:init] command=/data/stock/jobs/run_init.sh autostart=true autorestart=true @@ -31,6 +31,16 @@ priority=1 stopasgroup=true killasgroup=true +[program:cron] +command=/data/stock/jobs/run_cron.sh +autostart=true +autorestart=true +startsecs=20 +priority=1 +stopasgroup=true +killasgroup=true + + [program:stock-web] command=/data/stock/jobs/run_web.sh autostart=true diff --git a/docker-compose/dev-docker-compose.yml b/docker-compose/dev-docker-compose.yml index 7c415e3..2a1dc1f 100644 --- a/docker-compose/dev-docker-compose.yml +++ b/docker-compose/dev-docker-compose.yml @@ -36,6 +36,11 @@ services: - "9090:9090" volumes: # 设置开发目录,方便开发调试 + - "../backend/jobs/crontab:/var/spool/cron/crontabs/root" + - "../backend/jobs/cron.minutely:/etc/cron.minutely" + - "../backend/jobs/cron.hourly:/etc/cron.hourly" + - "../backend/jobs/cron.daily:/etc/cron.daily" + - "../backend/jobs/cron.monthly:/etc/cron.monthly" - "../backend:/data/stock" - "../backend/supervisor:/data/supervisor" - "./data/notebooks:/data/notebooks" diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index 00a454f..b7a73ef 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -51,6 +51,11 @@ services: - "9090:9090" volumes: # 设置开发目录,方便开发调试 + - "../backend/jobs/crontab:/var/spool/cron/crontabs/root" + - "../backend/jobs/cron.minutely:/etc/cron.minutely" + - "../backend/jobs/cron.hourly:/etc/cron.hourly" + - "../backend/jobs/cron.daily:/etc/cron.daily" + - "../backend/jobs/cron.monthly:/etc/cron.monthly" - "../backend:/data/stock" - "../backend/supervisor:/data/supervisor" - "./data/notebooks:/data/notebooks" -- Gitee From 8bddfb19ae502e97231bbd886dce1abc5ad811c1 Mon Sep 17 00:00:00 2001 From: freegolang Date: Fri, 28 Feb 2025 23:16:18 +0800 Subject: [PATCH 13/14] =?UTF-8?q?fix:=20=E8=AE=BE=E7=BD=AE=E6=9D=83?= =?UTF-8?q?=E9=99=90=EF=BC=8C=E8=A7=A3=E5=86=B3=E5=90=AF=E5=8A=A8=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/jobs/run_cron.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/backend/jobs/run_cron.sh b/backend/jobs/run_cron.sh index c3fc8c6..534f4ec 100755 --- a/backend/jobs/run_cron.sh +++ b/backend/jobs/run_cron.sh @@ -19,6 +19,7 @@ chmod 755 /etc/cron.daily/* && chmod 755 /etc/cron.monthly/* # 配置文件每次都设置权限 chmod 600 /var/spool/cron/crontabs/root +chown root:root /var/spool/cron/crontabs/root #启动cron服务。在前台 /usr/sbin/cron -f \ No newline at end of file -- Gitee From 97bf05ff128cffc1ace125d527606a1a7f0b8706 Mon Sep 17 00:00:00 2001 From: freegolang Date: Fri, 28 Feb 2025 23:41:52 +0800 Subject: [PATCH 14/14] add --- README.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index ba7f95c..92294c1 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -### pythonstock V3.0 项目简介,2025.01.09更新 +### pythonstock V3.0 项目简介,2025.02.28更新 **特别说明:股市有风险投资需谨慎,本项目只能用于Python代码学习,股票分析,投资失败亏钱不负责,不算BUG。** @@ -79,12 +79,12 @@ RSI: | 17, VR,MAVR指标 | http://wiki.mbalib.com/wiki/%E6%88%90%E4%BA%A4%E9%87%8F%E6%AF%94%E7%8E%87 成交量比率(Volumn Ratio,VR)(简称VR),是一项通过分析股价上升日成交额(或成交量,下同)与股价下降日成交额比值, 从而掌握市场买卖气势的中期技术指标。 | -### github项目2023-06-02 执行存档,gitee是最新的 +### github/gitee是项目地址 -这个项目地址已经存档,不维护了 +github地址: https://github.com/pythonstock/stock -迁移到了gitee地址: +gitee地址: https://gitee.com/pythonstock/stock ### 项目部署放到docker-compose @@ -183,11 +183,12 @@ http://docs.sqlalchemy.org/en/latest/core/reflection.html ## 更新日志 -### 版本进行镜像升级 2025-02-28 +### 17 版本进行镜像升级 2025-02-28 存储数据格式为 double 方便进行排序,decimal 类型转换出问题。 拆分生产部署,切换成nginx,前端进行编译构建。提高前端加载速度。 nginx的html影射到./data/html目录,前端编译完成需要拷贝文件到html,等待完成即可。 +解决定时任务问题,需要设置权限,才可以。 ### 16 更新发布 2.1 版本进行镜像升级 2023-06-03 -- Gitee