如图,查看类型时发现是一种叫sqlite的数据库,database.name和database.driver改名成mysql都没有效果,请问是为什么呢?
如图,查看类型时发现是一种叫sqlite的数据库,database.name和database.driver改名成mysql都没有效果,请问是为什么呢?
报错出现的位置如上
请问有安装vnpy_mysql吗?
xiaohe wrote:
请问有安装vnpy_mysql吗?
您好,有的,我是直接官网傻瓜式安装,site-packages里面也有完整的vnpy_mysql文件夹
可以先使用图形界面启动,查看日志输出是否是使用mysql数据库,以及能否读取mysql数据库数据
喻天灏 wrote:
如图,查看类型时发现是一种叫sqlite的数据库,database.name和database.driver改名成mysql都没有效果,请问是为什么呢?
我也遇到了问题:使用jupyter lab向MySQL workbench导入CSV数据,结果发现MySQL workbench里vnpy schema下的Tables刷新不出来数据。报错和你一样。遂尝试直接用DataFrame.to_sql写入数据库,代码如下:
import pandas as pd
# 加载并用代码修改vn.py全局配置
from vnpy.trader.setting import SETTINGS
SETTINGS["database.timezone"] = "Asia/Shanghai"
SETTINGS["database.driver"] = "mysql"
SETTINGS["database.database"] = "vnpy"
SETTINGS["database.host"] = "localhost"
SETTINGS["database.port"] = 3306
SETTINGS["database.user"] = "root"
SETTINGS["database.password"] = "pfzsl123..."
#SETTINGS["database.authentication_source"] = ""
# 加载vn.py数据库组件
from vnpy.trader.database import get_database, DB_TZ, convert_tz
from vnpy.trader.object import BarData
from vnpy.trader.constant import Exchange, Interval
# 用CSV读取数据并写入数据库
from datetime import datetime
from csv import DictReader
# 准备构造检查语句、创建新的数据表
from sqlalchemy import create_engine
database_manager = get_database()
with open("rb_data.csv") as f:
reader = DictReader(f)
bars = []
for row in reader:
dt = datetime.strptime(row["datetime"], "%Y/%m/%d %H:%M")
bar = BarData(
symbol=row["symbol"],
exchange=Exchange(row["exchange"]),
datetime=convert_tz(dt),
interval=Interval.MINUTE,
open_price=float(row["open"]),
high_price=float(row["high"]),
low_price=float(row["low"]),
close_price=float(row["close"]),
volume=row["volume"],
#open_interest=row["open_interest"],
gateway_name="DB"
)
bars.append(bar)
engine = create_engine("mysql+pymysql://root:pfzsl123...@127.0.0.1:3306/vnpy")
data = pd.DataFrame.from_records(bar.__dict__ for bar in bars)
data.to_sql("dbbardata", engine)
运行发现数据成功导入
后面构造查询语句和创建新数据表的代码也正常运行