十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

如何用 Freqtrade convert-db 命令把 SQLite 数据库迁移到 PostgreSQL?

如何用 Freqtrade convert-db 命令把 SQLite 数据库迁移到 PostgreSQL? 如何用 Freqtrade convert-db 命令把 SQLite 数据库迁移到 PostgreSQL【免费下载链接】freqtradeFree, open source crypto trading bot项目地址: https://gitcode.com/GitHub_Trending/fr/freqtradeFreqtrade 在 Live 和 Dry-Run 模式下会把交易记录存放在本地 SQLite 文件中默认文件名分别是tradesv3.sqliteLive和tradesv3.dryrun.sqliteDry-Run。如果你希望把交易数据存储切换为 PostgreSQL可以使用freqtrade convert-db子命令把现有 SQLite 库中的所有 trades、orders 和 Pairlocks 迁移过去。这篇文章给出迁移前的准备、迁移命令以及如何确认数据已进入新库并让机器人切过去。迁移前需要准备什么Freqtrade 底层使用 SQLAlchemy官方文档中列出已测试、确认可用的数据库系统为sqlite默认、PostgreSQL、MariaDB。注意 Freqtrade 本身不依赖也不安装任何额外的数据库驱动PostgreSQL 驱动需要自行安装pip install psycopg[binary]开始迁移前请确认以下条件有一个已完成安装并可运行的 freqtrade 环境要迁移的 SQLite 数据库文件存在且里面有需要迁移的数据默认路径见上位于工作目录下PostgreSQL 服务已自行部署并可连接。Freqtrade 文档明确说明使用外部数据库系统即表示你了解如何管理该系统freqtrade 团队不会提供这些数据库系统的安装、维护或备份支持目标数据库必须为空。文档中的警告原文是请确保只在空的目标数据库上使用该命令Freqtrade 会执行常规迁移但如果库中已存在条目可能会失败。执行 convert-db 迁移convert-db子命令提供两个参数见 命令帮助--db-url PATH目标数据库 URL用于覆盖 trades 数据库地址--db-url-from PATH迁移时使用的源数据库 URL。PostgreSQL 的连接 URL 在 advanced-setup.md 中给出的格式为postgresqlpsycopg://username:passwordlocalhost:5432/database完整的迁移命令如下其中username、password、database需要替换为你实际的 PostgreSQL 用户名、密码和库名freqtrade convert-db \ --db-url-from sqlite:///tradesv3.sqlite \ --db-url postgresqlpsycopg://username:passwordlocalhost:5432/database如果原始数据来自 Dry-Run 模式的机器人把--db-url-from的值换成sqlite:///tradesv3.dryrun.sqlite。命令内部的处理逻辑可以在 db_commands.py 中看到start_convert_db先以工具模式初始化配置然后分别对目标库和源库调用init_db再执行migrate_db把数据写入目标库。migrate_db见 db_migration.py依次迁移 trades含其 orders、Pairlocks、key-value 对、custom data 条目和 wallet history 条目随后按目标库中的最大 ID 更新各表的序列sequence并在结束时输出一条形如Migrated X Trades, Y Pairlocks, Z Key-Value pairs, N Custom Data entries, and M Wallet History entries.的汇总日志可用于判断迁移实际移动了多少数据。验证迁移结果迁移命令结束后用文档中的show-trades子命令直接查询新库中的交易记录确认数据已经可读freqtrade show-trades --db-url postgresqlpsycopg://username:passwordlocalhost:5432/databaseshow-trades的作用是把数据库中选定或全部的交易打印到屏幕也支持--trade-ids过滤和--print-json输出 JSON。如果命令能列出原 SQLite 库中的交易说明目标库已经成功接收入数据。让机器人切换到新数据库确认无误后在trade命令上加--db-url参数把机器人指向 PostgreSQLfreqtrade trade -c MyConfig.json -s MyStrategy --db-url postgresqlpsycopg://username:passwordlocalhost:5432/database文档说明使用这类非 SQLite 数据库系统时Freqtrade 会在启动时自动创建所需的表。如果同时运行多个 Freqtrade 实例必须为每个实例单独建一个数据库或使用不同的用户/schema 来区分连接。限制与注意事项目标库必须为空已有数据时迁移可能失败psycopg[binary]驱动需要自行安装Freqtrade 不会代装Freqtrade 团队不负责 PostgreSQL 的安装、维护与备份支持本文路径只覆盖 SQLite 到 PostgreSQL 的迁移同一命令也适用于 PostgreSQL 到其他 PostgreSQL 的迁移参数用法一致。【免费下载链接】freqtradeFree, open source crypto trading bot项目地址: https://gitcode.com/GitHub_Trending/fr/freqtrade创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表