wance_data/migrations/models/3_20240909094115_None.py

240 lines
12 KiB
Python
Raw Normal View History

2024-10-08 06:06:24 +00:00
from tortoise import BaseDBAsyncClient
async def upgrade(db: BaseDBAsyncClient) -> str:
return """
CREATE TABLE IF NOT EXISTS `users` (
`id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
`nickname` VARCHAR(30) COMMENT '用户昵称',
`avatar_url` VARCHAR(255) COMMENT '头像',
`member_type` INT COMMENT '会员类型',
`beta_account_type` VARCHAR(30) COMMENT '内测账号类型',
`pre_cost_time` INT COMMENT '预支付时间(单位年)',
`qr_code` VARCHAR(255) COMMENT '专属客服二维码',
`dedicated_id` INT COMMENT '专属客服id',
`invited_user_id` INT COMMENT '邀请人id',
`created_user_id` INT COMMENT '创建人id',
`is_deleted` BOOL NOT NULL COMMENT '是否删除' DEFAULT 0,
`login_at` DATETIME(6) COMMENT '最后一次登录时间',
`created_at` DATETIME(6) NOT NULL COMMENT '创建时间' DEFAULT CURRENT_TIMESTAMP(6),
`updated_at` DATETIME(6) NOT NULL COMMENT '修改时间' DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
`deleted_at` DATETIME(6) COMMENT '删除时间',
KEY `idx_users_is_dele_9cdc79` (`is_deleted`)
) CHARACTER SET utf8mb4 COMMENT='用户';
CREATE TABLE IF NOT EXISTS `stock` (
`id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
`stock_code` VARCHAR(30) NOT NULL COMMENT '股票代码',
`stock_name` VARCHAR(30) COMMENT '股票名称',
`type` VARCHAR(2) COMMENT '类型',
`stock_pinyin` VARCHAR(30) NOT NULL COMMENT '股票拼音'
) CHARACTER SET utf8mb4 COMMENT='股票相关信息';
CREATE TABLE IF NOT EXISTS `security_account` (
`id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
`securities_name` VARCHAR(30) NOT NULL COMMENT '证券公司名字昵称',
`fund_account` BIGINT COMMENT '资金账户',
`account_alias` VARCHAR(30) NOT NULL COMMENT '账户别名',
`money` DOUBLE COMMENT '账户金额',
`available_money` DOUBLE COMMENT '可用金额',
`available_proportion` DOUBLE COMMENT '可用资金占比',
`freeze` DOUBLE COMMENT '冻结金额'
) CHARACTER SET utf8mb4 COMMENT='证券账户';
CREATE TABLE IF NOT EXISTS `backtest` (
`id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '主键id',
`key` VARCHAR(30) NOT NULL COMMENT '回测key'
) CHARACTER SET utf8mb4;
CREATE TABLE IF NOT EXISTS `Entrust` (
`id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '主键id',
`fund_account` INT COMMENT '资金账户',
`securities_alias` VARCHAR(30) COMMENT '账户别名',
`account_type` SMALLINT COMMENT '账户类型',
`stock_code` VARCHAR(30) NOT NULL COMMENT '证券代码',
`stock_name` VARCHAR(30) NOT NULL COMMENT '证券名称',
`limit_price` DOUBLE NOT NULL COMMENT '委托价',
`entrust_number` INT NOT NULL COMMENT '委托数量',
`deal_price` DOUBLE COMMENT '成交价格',
`deal_number` INT COMMENT '成家数量',
`order_type` VARCHAR(30) NOT NULL COMMENT '操作',
`entrust_date` DATE COMMENT '委托日期',
`entrust_money` DOUBLE NOT NULL COMMENT '委托金额',
`is_repair` BOOL NOT NULL COMMENT '是否补单' DEFAULT 0,
`entrust_time` TIME(6),
KEY `idx_Entrust_is_repa_5a195d` (`is_repair`)
) CHARACTER SET utf8mb4;
CREATE TABLE IF NOT EXISTS `orders` (
`id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '订单ID',
`stock_code` VARCHAR(30) NOT NULL COMMENT '股票代码',
`stock_name` VARCHAR(30) NOT NULL COMMENT '股票名称',
`limit_price` DOUBLE NOT NULL COMMENT '限价',
`order_quantity` INT NOT NULL COMMENT '委托数量',
`order_amount` DOUBLE NOT NULL COMMENT '委托金额',
`order_type` VARCHAR(20) NOT NULL COMMENT '订单类型',
`position` VARCHAR(30) NOT NULL COMMENT '仓位',
`user_id` INT NOT NULL COMMENT '用户Id',
`entrust_date` DATETIME(6) COMMENT '委托日期',
`entrust_time` TIME(6)
) CHARACTER SET utf8mb4;
CREATE TABLE IF NOT EXISTS `snowball` (
`id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
`snowball_token` VARCHAR(10000) COMMENT '雪球用户的token'
) CHARACTER SET utf8mb4 COMMENT='雪球相关信息';
CREATE TABLE IF NOT EXISTS `Strategy` (
`id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
`strategy_name` VARCHAR(255) NOT NULL COMMENT '策略名称',
`strategy_hash` VARCHAR(255) NOT NULL COMMENT '策略版本号',
`strategy_type` VARCHAR(255) COMMENT '策略类型',
`user_id` INT COMMENT '所属用户',
`backtest_count` INT COMMENT '回测次数',
`backtest_keys` JSON COMMENT '回测key列表',
`is_deleted` BOOL NOT NULL COMMENT '是否删除' DEFAULT 0,
`created_at` DATETIME(6) NOT NULL COMMENT '创建时间' DEFAULT CURRENT_TIMESTAMP(6),
`updated_at` DATETIME(6) NOT NULL COMMENT '修改时间' DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
`deleted_at` DATETIME(6) COMMENT '删除时间'
) CHARACTER SET utf8mb4;
CREATE TABLE IF NOT EXISTS `Backtest` (
`id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
`key` VARCHAR(20) NOT NULL UNIQUE COMMENT '回测key',
`user_id` INT COMMENT '回测用户',
`backtest_at` DATETIME(6) NOT NULL COMMENT '回测时间' DEFAULT CURRENT_TIMESTAMP(6),
`backtest_code` LONGTEXT NOT NULL COMMENT '回测代码',
`is_running` BOOL NOT NULL COMMENT '回测状态' DEFAULT 1,
`updated_at` DATETIME(6) NOT NULL COMMENT '修改时间' DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
`deleted_at` DATETIME(6) COMMENT '删除时间',
`is_active` BOOL NOT NULL COMMENT '是否可用' DEFAULT 1,
`strategy_id` INT NOT NULL,
CONSTRAINT `fk_Backtest_Strategy_7eabb20d` FOREIGN KEY (`strategy_id`) REFERENCES `Strategy` (`id`) ON DELETE CASCADE,
KEY `idx_Backtest_key_eb92b1` (`key`),
KEY `idx_Backtest_strateg_83ac3d` (`strategy_id`)
) CHARACTER SET utf8mb4;
CREATE TABLE IF NOT EXISTS `stock_details` (
`id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
`stock_code` VARCHAR(30) NOT NULL COMMENT '股票代码',
`stock_name` VARCHAR(30) COMMENT '股票名称',
`type` VARCHAR(2) COMMENT '类型',
`stock_pinyin` VARCHAR(30) NOT NULL COMMENT '股票拼音',
`latest_price` DOUBLE COMMENT '最新价',
`rise_fall` DOUBLE COMMENT '跌涨幅'
) CHARACTER SET utf8mb4 COMMENT='股票相关信息';
CREATE TABLE IF NOT EXISTS `Transaction` (
`id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
`key` VARCHAR(20) NOT NULL COMMENT 'key,数据标识',
`cash` DOUBLE COMMENT '资金',
`transaction_name` VARCHAR(255) NOT NULL COMMENT '交易名称',
`transaction_type` VARCHAR(255) COMMENT '交易类型',
`user_id` INT COMMENT '用户id',
`is_running` BOOL NOT NULL COMMENT '运行状态' DEFAULT 1,
`is_deleted` BOOL NOT NULL COMMENT '是否删除' DEFAULT 0,
`process_id` INT COMMENT '进程号',
`bar` VARCHAR(10) COMMENT '频率K线',
`created_at` DATETIME(6) NOT NULL COMMENT '创建时间' DEFAULT CURRENT_TIMESTAMP(6),
`updated_at` DATETIME(6) NOT NULL COMMENT '修改时间' DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
`stopped_at` DATETIME(6) COMMENT '停止时间',
`deleted_at` DATETIME(6) COMMENT '删除时间',
`strategy_id` INT NOT NULL,
CONSTRAINT `fk_Transact_Strategy_849d0577` FOREIGN KEY (`strategy_id`) REFERENCES `Strategy` (`id`) ON DELETE CASCADE,
KEY `idx_Transaction_strateg_b8f0b2` (`strategy_id`)
) CHARACTER SET utf8mb4;
CREATE TABLE IF NOT EXISTS `position` (
`id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
`key` VARCHAR(30) NOT NULL COMMENT '',
`date` DATE NOT NULL COMMENT '日期',
`name` VARCHAR(30) NOT NULL COMMENT '名称',
`size` INT NOT NULL COMMENT '数量',
`price` DOUBLE NOT NULL COMMENT '价格',
`adjbase` DOUBLE NOT NULL COMMENT '复权基数',
`profit` DOUBLE NOT NULL COMMENT '利润'
) CHARACTER SET utf8mb4;
CREATE TABLE IF NOT EXISTS `trand_info` (
`id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT 'id',
`key` VARCHAR(255) COMMENT '唯一索引',
`tran_info_data` LONGBLOB
) CHARACTER SET utf8mb4;
CREATE TABLE IF NOT EXISTS `tran_observer_data` (
`id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
`key` VARCHAR(255) NOT NULL,
`tran_observer_data` LONGBLOB COMMENT '存储大量数据'
) CHARACTER SET utf8mb4;
CREATE TABLE IF NOT EXISTS `tranorders` (
`id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
`key` VARCHAR(255),
`order_return` VARCHAR(255)
) CHARACTER SET utf8mb4;
CREATE TABLE IF NOT EXISTS `tran_return` (
`id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
`key` VARCHAR(255),
`tran_return_data` LONGBLOB
) CHARACTER SET utf8mb4;
CREATE TABLE IF NOT EXISTS `tran_trade_info` (
`id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
`key` VARCHAR(25),
`tran_trade_info` LONGBLOB
) CHARACTER SET utf8mb4;
CREATE TABLE IF NOT EXISTS `back_observed_data` (
`id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT 'id表',
`key` VARCHAR(255) COMMENT 'key',
`observed_data` LONGBLOB COMMENT '格式化后的json数据'
) CHARACTER SET utf8mb4;
CREATE TABLE IF NOT EXISTS `back_observed_data_detail` (
`id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
`key` VARCHAR(255) NOT NULL,
`back_observed_data` LONGBLOB
) CHARACTER SET utf8mb4;
CREATE TABLE IF NOT EXISTS `back_position` (
`id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
`key` VARCHAR(25),
`back_position_data` LONGBLOB
) CHARACTER SET utf8mb4;
CREATE TABLE IF NOT EXISTS `back_result_indicator` (
`id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
`key` VARCHAR(25),
`indicator` LONGBLOB
) CHARACTER SET utf8mb4;
CREATE TABLE IF NOT EXISTS `back_trand_info` (
`id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
`key` VARCHAR(25),
`trade_info` LONGBLOB
) CHARACTER SET utf8mb4;
CREATE TABLE IF NOT EXISTS `tran_position` (
`id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
`key` VARCHAR(25),
`tran_position_data` LONGBLOB
) CHARACTER SET utf8mb4;
CREATE TABLE IF NOT EXISTS `stock_bt_history` (
`id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
`end_bt_time` VARCHAR(8) COMMENT '回测最终时间',
`bt_stock_code` VARCHAR(8) COMMENT '回测股票代码',
`bt_stock_name` VARCHAR(10) COMMENT '回测股票名称',
`bt_benchmark_code` VARCHAR(8) COMMENT '股票基准代码',
`bt_stock_period` VARCHAR(10) COMMENT '回测类型',
`bt_strategy_name` VARCHAR(10) COMMENT '回测策略名称',
`bt_stock_data` LONGBLOB COMMENT '回测股票数据'
) CHARACTER SET utf8mb4;
CREATE TABLE IF NOT EXISTS `stock_history` (
`id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
`stock_code` INT NOT NULL COMMENT '股票代码',
`stock_name` VARCHAR(10),
`start_time_to_market` VARCHAR(10) COMMENT '股票上市时间',
`end_bt_time` VARCHAR(10) COMMENT '最终回测时间',
`symbol_data` LONGBLOB COMMENT '股票数据'
) CHARACTER SET utf8mb4;
CREATE TABLE IF NOT EXISTS `stock_data_processing` (
`bt_benchmark_code` VARCHAR(6) COMMENT '基准代码',
`bt_stock_period` VARCHAR(10) COMMENT '数据类型',
`bt_strategy_name` VARCHAR(10) COMMENT '回测策略名',
`id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
`processing_data` LONGBLOB COMMENT '清洗后的数据',
`prosessing_date` VARCHAR(10) COMMENT '当前回测时间',
`stock_name` VARCHAR(10),
`stocke_code` VARCHAR(10)
) CHARACTER SET utf8mb4;
CREATE TABLE IF NOT EXISTS `aerich` (
`id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
`version` VARCHAR(255) NOT NULL,
`app` VARCHAR(100) NOT NULL,
`content` JSON NOT NULL
) CHARACTER SET utf8mb4;"""
async def downgrade(db: BaseDBAsyncClient) -> str:
return """
"""