【fly-iot飞凡物联】(14):重启开源项目Actorcloud项目,并使用docker-compose启动成功,切换MySQL数据库,使用flask deploy创建数据库表

前言


本文的原文连接是:
https://blog.csdn.net/freewebsys/article/details/108971807
fly-iot飞凡物联专栏:
https://blog.csdn.net/freewebsys/category_12219758.html

未经博主允许不得转载。
博主CSDN地址是:https://blog.csdn.net/freewebsys
博主掘金地址是:https://juejin.cn/user/585379920479288
博主知乎地址是:https://www.zhihu.com/people/freewebsystem

视频演示地址

https://www.bilibili.com/video/BV1Ze411q7fS/

【fly-iot】(2):重启开源项目Actorcloud项目,切换MySQL数据库,使用flask deploy防守方,初始化数据库表

1,关于actorcloud项目,重新整理开源项目代码


原始项目: https://github.com/actorcloud/ActorCloud

项目都是采用 apache协议开源的。
之前的项目也是apache 协议开源的。

ActorCloud 是一个面向低功耗IoT网络,为企业提供一站式平台服务的物联网平台。ActorCloud 在安全可靠的基础上,为设备提供多种协议接入的通信能力,设备数据与消息流管理功能。

扫描二维码关注公众号,回复: 17359458 查看本文章

平台提供基础设备管理功能以连接、管理海量设备,实现设备的消息通信与数据采集持久化;集成规则引擎与数据可视化管理,灵活开放多种权限级别的管理、控制 API,通过 API 可快速开发上层应用,实现多端接入、设备远程控制。

IoT Hub:为终端上云建立可靠双向连接通道,进行认证鉴权、协议解析与消息路由;
设备管理:终端注册开通与生命周期管理,提供状态、故障、流量的不间断监控;
数据引擎:对获取的终端消息高速持久化、实时解析、规则事务处理与可视化展示;
应用使能:提供终端SDK、APP SDK,开放丰富的 REST API 接口,集成消息推送接口。

项目地址:

前端项目地址:
https://gitee.com/fly-iot/fly-iot-frontend
后端项目地址:
https://gitee.com/fly-iot/fly-iot-backend-python
docker-compose 项目地址:
https://gitee.com/fly-iot/docker-compose

2,安装驱动使用 pymysql==1.0.2

pymysql==1.0.2
对应的SQL 连接:

mysql+pymysql://root:mysqliot@mysql-iot:3306/fly_iot
即可

3,解决SQL 问题,切换 to_char 成 date_format

sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1305, 'FUNCTION fly_iot.to_char does not exist')
[SQL: SELECT to_char(device_count_hour.`countTime`, %(to_char_2)s) AS to_char_1, sum(device_count_hour.`deviceCount`) AS sum_1 
FROM device_count_hour 
WHERE device_count_hour.`tenantID` = %(tenantID_1)s AND device_count_hour.`countTime` > %(countTime_1)s GROUP BY to_char(device_count_hour.`countTime`, %(to_char_3)s) ORDER BY to_char(device_count_hour.`countTime`, %(to_char_4)s)]
[parameters: {
   
   'to_char_2': 'HH24:00', 'tenantID_1': 'PghAoyPJ9', 'countTime_1': datetime.datetime(2023, 12, 31, 16, 10, 37, 632378), 'to_char_3': 'HH24:00', 'to_char_4': 'HH24:00'}]

报错:FUNCTION .to_char does not exist(to_char与date_format)

4,解决判断数据库是否存在表


    # https://database.guide/5-ways-to-check-if-a-table-exists-in-mysql/#:~:text=Another%20way%20to%20check%20whether%20a%20table%20exists,TABLE_TYPE%20LIKE%20%27BASE%20TABLE%27%20AND%20TABLE_NAME%20%3D%20%27Artists%27%3B
    # SELECT * FROM `system_info` ;
    table_check_sql = """
    SHOW TABLE STATUS FROM fly_iot WHERE Name = 'system_info';
    """
    is_exist = db.engine.execute(
        text(table_check_sql).execution_options(autocommit=True)
    ).first()

然后替换不标准的字段:

db.String,  替换成 db.String(200),
db.Column(db.String) 替换成 db.Column(db.String(200))

db.Column(JSONB) 替换成 db.Column(db.JSON)

db.Column(JSONB, 替换成 db.Column(db.JSON,

5,PostgreSQL插件之TimescaleDB


TimescaleDB是一个开源的PostgreSQL的时序数据库扩展。基于PostgreSQL的强大能力,TimescaleDB能够提供跨时间和空间的自动分区以及完整的SQL支持。
TimescaleDB既像传统的关系型数据库一样支持全量SQL,又像NoSQL型数据库一样可扩展。它具有如下的优势:
简单易用

PostgreSQL原生支持的所有的SQL接口(包括二级索引,基于非时间的聚合,子查询,JOIN,窗口函数)
无需更改任何连接和使用PostgreSQL的客户端和工具
面向时间的功能、API函数以及优化
强大的数据保存策略的支持

链接:https://juejin.cn/post/7004641103320203301

3,总结


重启开源项目Actorcloud项目,并使用docker-compose启动成功。
原始项目: https://github.com/actorcloud/ActorCloud
整个项目不是我写的,我只是整理资料,然后折腾环境,把项目跑起来了。
使用docker-compose 把相关的前端,后端,数据库都跑起来了,但是目前还没有MQTT服务。
继续折腾,把修改的项目代码,和部署文件已经放到gitee上面开源了。
我是这个项目的搬运工,大家可以一起学习研究。项目都是采用 apache协议开源的。
之前的项目也是apache 协议开源的。

本文的原文连接是:
https://blog.csdn.net/freewebsys/article/details/108971807

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/freewebsys/article/details/135331039