数据库版本管理工具flyway踩坑

flyway的快速入门教程 Flyway是一款开源的数据库版本管理工具。它可以很方便的在命令行中使用,或者在Java应用程序中引入,用于管理我们的数据库版本。在项目或产品中,很难一开始就把业务理清楚,把数据库表设计好,因此数据表也会在迭代周期不断迭代。在Java应用程序中使用Flyway,能快速有效地用于迭代数据库表结构,并保证部署到测试环境或生产环境时,数据表都是保持一致的。flyway官方文档[这里是图片001]https在控制台可以看到相关日志打印,并在数据库中查看到已经创建好的表和相关记录变更。... 阅读详情
AI摘要

本文详细介绍了数据库版本管理工具Flyway的使用,包括配置、脚本命名规范、可重复执行的SQL以及注意事项。通过SpringBoot集成Flyway,展示了如何创建、迁移和管理数据库版本。此外,还探讨了Flyway的Clean、Baseline、Validate和Repair等命令,以及配置参数的解释和使用建议。

数据库版本管理工具利器——flyway详解

在这里插入图片描述
首先关于什么是flyway?以及使用场景(Java对数据库版本控制的主要有两个工具:Flyway、
Liquibase)可自行百度,狗子们用了都说好!

1、demo

flyway的广泛使用已被springboot自动装配集成,进入spring官网https://start.spring.io/创建以下依赖
在这里插入图片描述
idea直接进入生成好的项目内application.yml进行如下配置(数据库使用高性能postgresql)

> spring:
  datasource:
    driver-class-name: org.postgresql.Driver
    url: jdbc:postgresql://localhost:5432/flyway_demo
    username: postgres
    password: postgres
  flyway:
    enabled: true

默认的db.migration目录下添加符合标准命名的sql脚本

create table f_user(id serial primary key,userName varchar(60) not null,password varchar(60) not null,sex char(1));
insert into f_user (userName,password,sex) values('admin','admin','1');

idea界面如是
在这里插入图片描述
项目启动,查看数据库,自动生成如下两张表(业务表自己创建的f_user, flyway内置表flyway_schema_history)
在这里插入图片描述在这里插入图片描述
至此,一个简单的数据库版本管理工具已集成好,能够自动的帮你管理业务sql的执行

Flyway用’schema_version_history’数据表存放数据库schema的历史记录,跟踪数据库结构的变更;

由于刚开始数据库为空,Flyway找不到schema_version_history数据表,所以Flyway找不到它,就在数据库中创建了此表,

之后我们则需要在项目中定义Migration,通常用SQL或Java定义。

如下图所示,Flyway在运行时会顺序执行上图中的Migration1和Migration 2来实现对数据库的更新;同时’schema_version_history’表也会记录下这两次修改。
在这里插入图片描述

2、使用注意事项

  • 配置项
  • 打开源码springboot自动装配的配置映射对象FlywayProperties
    在这里插入图片描述
    常用属性配置
    1、enabled:是否打开flyway管理
    2、locations:执行的sql脚本路径,默认classpath:db/migration
    3、encoding:sql脚本字符集编码
    4、table:生成的校验表名字,默认flyway_schema_history如上图生成的校验表截图
    5、sqlMigrationSeparator:sql命名的标准分隔符默认__
    6、sqlMigrationPrefix:标准版本控制的sql脚本命名前缀
    7、repeatableSqlMigrationPrefix:可重复执行的sql脚本命名前缀
    8、placeholderReplacement:是否进行el变量替换

配置对象如此多的属性,为啥列举如上?经常使用,项目测试躲过坑,执行报错经历,特殊场景需求,下面一一道来:

table

校验默认生成的表明,但是要知道flyway自己也留下小坑,在5.0.0版中将flyway.table的默认值更改为flyway_schema_history ,原来的默认值叫schema_version,还记得曾几何时大版本的升级,由于此处不兼容安装升级失败整个提测流程打回!

placeholderReplacement

sql脚本中符合el表达式变量替换中的${}特殊字符,想想看mybatis中sql防注入的入参变量,如果开关打开脚本执行会报错导致升级失败,设置为false能解决sql脚本中类似的特殊字符,集合配置项placeholderPrefix默认值(“${)”)、placeholderSuffix的默认值(“}”)具体情况使用

sqlMigrationPrefix

控制版本的标准命名前缀默认为"V",跟笔者开头的demo相对应,此脚本有以下特性:
在这里插入图片描述

1、sql只执行一次
2、生成校验值checksum,只要当前sql脚本变动,与之前入库执行的sql不一样,checksum值校验不成功,升级失败
3、生成版本号version唯一和脚本命名规则中Add_new_table对应,命名规则(V类型对应下图第一个):在这里插入图片描述
4、installed_by执行脚本的数据库连接用户名,以及sql执行结果success(t和f)

5、有序执行它采用 采用左对齐原则, 缺位用 0 代替 。举几个例子:
1.0.1.1 比 1.0.1 版本高。
1.0.10 比 1.0.9.4 版本高。
1.0.10 和 1.0.010 版本号一样高, 每个版本号部分的前导 0 会被忽略。

repeatableSqlMigrationPrefix

可重复执行的sql脚本命名前缀默认为“R”,命名规则如上图第三个,笔者测试先走一波再看结论
添加sql脚本——R__1.1updateuser.sql(注意命名标准)

create table f_user2(id serial primary key,userName varchar(60) not null,password varchar(60) not null,sex char(1));
insert into f_user2 (userName,password,sex) values('admin','admin','1');

在这里插入图片描述
启动服务,查看数据库结果
在这里插入图片描述
业务表f_user2成功创建,数据库记录多生成一条记录,缺少版本号version,其余校验值和V一致,该R开头sql表示为可重复执行的sql脚本,脱离version的版本校验约束,相当于补丁脚本,在所有V脚本执行后执行,同时也有checksum值校验,一旦内容发生变化,checksum值变动,但执行不会报错,会重新执行,脚本内容无变化时,不会执行

什么意思?容我操作一下

修改R__1.1updateuser.sql脚本内容 尾部添加如下

create table f_user2(id serial primary key,userName varchar(60) not null,password varchar(60) not null,sex char(1));
insert into f_user2 (userName,password,sex) values('admin','admin','1');


drop table f_user2;
create table f_user3(id serial primary key,userName varchar(60) not null,password varchar(60) not null,sex char(1));

项目启动,查看数据库结果
在这里插入图片描述
执行报错,R__1.1updateuser.sql脚本有变动会重新执行,业务sql脚本创建表若是永exists判断,会删除f_user2创建新的f_user3,之前的f_user2业务数据会无感知删除,还是有的一定风险,使用时可作为V版本的补丁脚本,单次执行完,不做变动,保证只执行一次,也不影响主版本version的升级!

除此之外还有命名途中的第二种U开头的脚本类型即回滚V类型的Undo模式,与version作用相反用于撤销具有相同版本的版本化迁移带来的影响。但是该回滚过于粗暴,过于机械化,一般不推荐使用。一般建议使用 Versioned 模式来解决。,版本号与V一致,创建以下U__1.1deleteuser.sql

drop table f_user;

Undo及基本操作命令info、clean、migrate、undo通过cmd命令行执行演示
本地安装flyway(下载地址)conf下的配置文件flyway.conf

flyway.url=jdbc:postgresql://localhost:5432/flyway_cmd
flyway.user=postgres
flyway.password=postgres
flyway.schemas=flyway_demo
flyway.encoding=UTF-8
flyway.locations=sql

脚本V1.1__createuser.sql放置安装目录sql文件夹下,cmd命令行执行

flyway info
在这里插入图片描述
继续添加脚本R__1.1updateuser.sql,cmd命令行执行可重复执行脚本
flyway migrate
在这里插入图片描述
继续添加脚本U1.1__createuser.sql,cmd命令行执行回滚脚本
flyway undo
在这里插入图片描述
至此查看数据库结果
在这里插入图片描述
三条执行记录,最后一条的回滚UNDO_SQL直接将V1.1__createuser.sql的操作删除

额外操作命令,cmd命令行执行清除脚本
flyway clean
在这里插入图片描述
数据库所有sql操作均被清除,还原成空库

flyway Baseline
初始化schema_version表,并插入一条原始verion=1

flyway Validate
迁移之前进行验证

flyway Repair
移除所有失败的迁移(升级),重置校验和删除schema_version失败记录

3、结束

flyway的使用注意情况

  • 生产务必禁 spring.flyway.cleanDisabled=false
  • 尽量避免使用 Undo 模式
  • repeatableSql——R模式的sql修补功能

贴下所有的配置项详解如下:

flyway.baseline-description对执行迁移时基准版本的描述.
flyway.baseline-on-migrate当迁移时发现目标schema非空,而且带有没有元数据的表时,是否自动执行基准迁移,默认false.
flyway.baseline-version开始执行基准迁移时对现有的schema的版本打标签,默认值为1.
flyway.check-location检查迁移脚本的位置是否存在,默认false.
flyway.clean-on-validation-error当发现校验错误时是否自动调用clean,默认false.
flyway.enabled是否开启flywary,默认true.
flyway.encoding设置迁移时的编码,默认UTF-8.
flyway.ignore-failed-future-migration当读取元数据表时是否忽略错误的迁移,默认false.
flyway.init-sqls当初始化好连接时要执行的SQL.
flyway.locations迁移脚本的位置,默认db/migration.
flyway.out-of-order是否允许无序的迁移,默认false.
flyway.password目标数据库的密码.
flyway.placeholder-prefix设置每个placeholder的前缀,默认${.
flyway.placeholder-replacementplaceholders是否要被替换,默认true.
flyway.placeholder-suffix设置每个placeholder的后缀,默认}.
flyway.placeholders.[placeholder name]设置placeholder的value
flyway.schemas设定需要flywary迁移的schema,大小写敏感,默认为连接默认的schema.
flyway.sql-migration-prefix迁移文件的前缀,默认为V.
flyway.sql-migration-separator迁移脚本的文件名分隔符,默认__
flyway.sql-migration-suffix迁移脚本的后缀,默认为.sql
flyway.tableflyway使用的元数据表名,默认为schema_version
flyway.target迁移时使用的目标版本,默认为latest version
flyway.url迁移时使用的JDBC URL,如果没有指定的话,将使用配置的主数据源
flyway.user迁移数据库的用户名
flyway.validate-on-migrate迁移时是否校验,默认为true.
DB版本控制:SpringBoot集成Flyway 为什么要使用flyway?在多人开发的项目中,我们经常会遇到下面的问题,有了flyway,这些问题都能得到很好的解决。自己写的SQL忘了在所有环境执行。别人写的SQL我们不能确定是否都在所有环境执行过了。有人修改了已经执行过的SQL,期望再次执行。需要新增环境做数据迁移。每次发版需要手动控制先发DB版本,再发布应用版本... ...Flyway是一款流行的开源数据库迁移工具,主要用于对结构化数据库进行版本控制和升级管理。 阅读详情

相关推荐

老年人教程: 数据库版本管理工具 Flyway使用文档

一、什么是Flyway ? Flyway 是一款开源的数据库版本管理工具, 它更倾向于规约优于配置的方式。 Flyway 可以独立于应用实现管理并且跟踪数据库的变更。 支持数据库版本的自动升级, 自带有一套默认的规约,不需要复杂的配置。Migrations 可以写成SQL脚本,也可以集成到JAVA代码中,同时在分布式环境下能够安全可靠的升级数据库,支持失败恢复操作等。 而且flyway命令简单,...

波特多的博客 3509

Flyway详解(使用说明及避坑指南、一文搞懂flyway)

Flyway详解,包含工作原理、使用说明、避坑指南、以及团队使用时的注意事项

Jiao1225的博客 8万+

Matlab实现PSO-TCN-LSTM-Attention粒子群算法优化时间卷积长短期记忆神经网络融合注意力机制多变量时间序列预测的详细项目实例

这些数据包含了随时间变化她动态信息,具有显著她趋势她、周期她和季节她特征。该模型她核心优势在她其能够自适应地学习数据中她多层次时序信息,捕捉时间序列中她长短期依赖关系,从而提高预测她准确她和可靠她。本项目旨在实她一个基她PTO-TCN-LTTM-TFSttfntion她多变量时间序列预测模型,通过粒子群优化算法优化时间卷积长短期记忆神经网络,并融合注意力机制,提高模型她预测精度和稳定她。本项目模型她实她分为多个阶段,首先她数据预处理,接着她PTO优化,然后她TCN和LTTM网络她构建她训练。

优质创作者: 人工智能技术领域 对于有一定基础的 MATLAB和Python带具体需求都可以详谈 MATLAB和Python可以提供代码调试服务加油 谢谢 你的鼓励是我前行的动力 谢谢支持 加油 谢谢 1080

Flyway简介及使用

Flyway简介及使用 1、简介 1.1 Flyway是什么? Flyway是一款开源的数据库版本管理工具,它更倾向于规约优于配置的方式。 Flyway可以独立于应用实现管理并跟踪数据库变更,支持数据库版本自动升级,并且有一套默认的规约,不需要复杂的配置。 Migrations可以写成SQL脚本,也可以写在Java代码中,不仅支持Command Line和Java API,还支持Build构建工具和Spring Boot等。 同时在分布式环境下能够安全可靠地升级数据库,同时也支持失败恢复等。 关于F

solo的博客 1万+

使用 ANSYS 实现铸造、凝固和熔炼的高级解决方案

凭借其强大的有限元分析 (FEA) 和计算流体动力学 (CFD) 功能,ANSYS 可以准确预测模具内的热和流体流动行为。总之,ANSYS 是铸件凝固和熔化领域的关键工具。其全面的仿真功能、工艺优化功能、材料特性分析和用户友好的界面使其成为旨在创新和改进制造工艺的工程师不可或缺的工具。通过利用 ANSYS,各行各业可以在铸造业务中实现更高的质量、效率和成本效益,从而为先进的制造解决方案铺平道路。ANSYS是一款领先的工程仿真软件,提供强大的功能来建模和优化这些复杂的热过程,从而显著提高生产效率和质量。

jkh920184196的博客 2108

AVS3代码阅读HPM4.0

参考AVS3代码阅读(HPM6.0)(一.整体架构以及CU划分部分代码) 版本:HPM4.0 核心文件:app_encoder.c   要做的是帧间预测,所以前面的函数先暂时不管了,挖个坑以后再填。直接从enc_pic看起。 enc_pic()    ...

CRR的博客 3187

数据库版本管理工具 -- Flyway

目录 一、Flyway简介 二、如何使用Flyway 三、核心概念 1、Migration 2、每个migration支持两种编写方式: (1)java (2)sql (3)所有的migration都需要遵守命名规范: 四、集成springboot 1、pom文件中引入依赖 2、application.yml application.properties 3、在s...

weixin_43240792的博客 5418

即梦 AI 全功能零基础详细教程(纯技术版)

即梦 AI 是一款多模态 AI 生成工具,主打文本生成视频、图片生成视频、角色一致性生成、音画同步等核心功能,依托自研 AI 视觉模型,实现从文本 / 图片 / 音频素材输入,到高清视频、图像内容输出的全流程 AI 创作,支持短视频、短剧、创意素材等多场景创作,具备操作门槛低、生成效率高、画面可控性强的技术特点。@为工具内置引用指令,作用是锁定指定素材 / 角色,强制 AI 按照该素材的核心特征生成内容,无额外付费、解锁要求,免费使用。剧本拆分:将短剧拆分为单镜头(15 秒内 / 个)

2501_92061023的博客 5823

数据库版本管理工具 Flyway 使用

Flyway是一款开源的数据库版本管理工具,使用简单,应用无侵入。面向 SQL,选择 Flyway不面向 SQL,选择 Liquibase。

清茶的博客 5924

群晖存储空间损毁不等于硬盘损坏:排查与修复实战

NAS存储系统中,物理硬盘、存储池与文件系统空间构成层级结构,任何一层出现异常都可能在管理界面汇总为“存储空间损毁”。事实上,异常断电、卷未正常挂载等软性问题也会触发这一红色告警,而存储池和硬盘SMART状态往往完全正常。理解这一机制后,用户无需急于格式化重建,通过事件日志审查、SSH确认挂载状态,再借助btrfs scrub等文件系统自愈工具,即可在数据不丢失的前提下恢复存储空间正常。该方案对家庭及小型办公环境中的群晖NAS尤其适用,特别是在供电不稳或硬盘休眠频繁的场景下,能有效规避误判风险。本文完整记录

weixin_30843121的博客 261

Workbench中基于nCode的列车转向架随机振动疲劳寿命预测方法

本文详细介绍了在ANSYS Workbench中结合nCode进行列车转向架随机振动疲劳寿命预测的完整方法。通过几何清理、模态分析、PSD载荷定义及随机振动求解,并重点阐述了nCode中Dirlik等疲劳算法的选择与应用,为轨道交通关键部件的可靠性设计提供了系统的仿真分析流程与工程实践指导。

weixin_29234423的博客 473

【Flyway】数据库版本管理

Flyway 是一款开源的数据库版本管理工具,它可以帮助开发者以一种可靠且可重复的方式管理数据库变更。Flyway 遵循迁移脚本的版本化原则,允许开发者将数据库的变更以脚本的形式记录下来,然后按照版本顺序依次执行这些脚本,确保数据库结构在不同环境(开发、测试、生产)中保持一致。Flyway 的主要特点包括:(1)简单易用:通过简单的命令和配置即可管理数据库迁移。(2)支持多种数据库:如 MySQL、PostgreSQL、Oracle、SQL Server 等。

weixin_44823875的博客 3048

【光伏风电功率预测】偏差考核每月少几十万:STL-VMD + Informer-LSTM 在某基地的落地案例

摘要:某风光一体化基地通过STL-VMD二次分解与Informer-LSTM并行残差模型,在不推翻现有预测系统的情况下,将风光功率预测的综合nRMSE降低了1.2-1.5个百分点。该方案通过分解预测误差为多个子序列,并采用不同模型处理各频段特征,显著改善了关键时段的预测精度。实施后,风电nRMSE从9.0%降至7.6%,光伏从10.2%降至8.8%,每月减少偏差考核费用30-50万元。项目经验表明,数据质量优化、参数调优及与业务目标对齐是关键成功因素,该技术路线具有可复制性,为风光基地预测精度提升提供了有效

专注AI大模型,软件混淆,授权 264

数据库版本管理工具Flyway应用研究

Flyway 是一个开源的数据库迁移工具。它强烈支持简单性和约定优于配置。它仅基于 7 个基本命令: Migrate、 Clean、 Info、 Validate、 Undo、 Baseline和 Repair。迁移可以用SQL (支持特定于数据库的语法(例如 PL/SQL、T-SQL 等))或Java (用于高级数据转换)编写。它有一个命令行客户端。如果在 JVM 上,官方建议使用Java API 在应用程序启动时迁移数据库。也可以使用Maven 插件 或Gradle 插件。

weixin_43128854的博客 3874

SAP公司间STO业务解析(包含主数据解析、后台配置解析、前台业务演示)

SAP公司间STO业务解析

ww114784的博客 1017

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

数据库版本管理工具Flyway使用介绍

数据库版本管理工具Flyway使用介绍

scorpio的博客 4689

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

数据库版本管理工具flyway

Flyway 是独立于数据库的应用、管理并跟踪数据库变更的数据库版本管理工具。 Flyway 的特性 自动升级(自动发现更新项):Flyway 会将任意版本的数据库升级到最新版本。Flyway 可以脱离JVM 环境通过命令行执行,可以通过Ant 脚本执行,通过Maven 脚本执行(这样就可以在集成环境自动执行),并且可以在应用中执行(比如在应用启动时执行)。规约优于配置:Flyway 

tangaijun的博客 4081

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

SpringBoot整合Flyway实现数据库的初始化和版本管理

Flyway 是一款开源的数据库版本管理工具。它可以很方便的在命令行中使用,或者在Java应用程序中引入,用于管理我们的数据库版本。

llg___的博客 3184

数据库版本管理工具Flyway

1.  引言 想到要管理数据库的版本,是在实际产品中遇到问题后想到的一种解决方案,当时各个环境的数据库乱作一团,没有任何一个人(开发、测试、维护人员)能够讲清楚当前环境下的数据库是哪个版本,与哪个版本的应用相匹配,如何升级到与新版本的应用相匹配。 想到管理数据库版本时,先是心底形成了一个初步的解决方案,大致是通过数据库中的某张表来记录数据库表结构的历次更新与对应版本,在每次数据库表结构调整时除

da sheng 的专栏 1676

Flyway 数据库版本管理 | 专业解决方案

目前很多公司都是通过人工去维护、同步数据库脚本,但经常会遇到疏忽而遗漏的情况,同时也是非常费力耗时*

Y525698136的博客 2128

Flyway 数据库版本管理:db-tutorial 持续集成实战指南

在现代化的软件开发流程中,数据库版本管理已成为团队协作中不可或缺的关键环节。Flyway 作为一款强大的数据库迁移工具,能够帮助开发团队有效解决数据库版本混乱的问题,实现持续集成的顺畅流程。 ## 🚀 为什么需要数据库版本管理? 在传统的开发模式中,我们经常会遇到这样的困境: - 开发环境的数据库修改没有同步到测试环境 - 生产环境的数据修复在开发环境中缺失 - 无法准确判断数据库的当前状

gitblog_00508的博客 1013

在SpringBoot中使用flyway进行数据库版本管理

本文大纲 flyway是什么 能帮助我们解决什么问题 springboot环境下使用flyway flyway的工作原理 一、flyway是什么 Flyway是一个开源的数据库版本管理工具,并且极力主张“约定大于配置”,简单、专注、强大。可以使用SQL完成数据同步,或者基于特定数据库的语法(例如PL / SQL,T-SQL等)或Java代码(适用于高级数据转换或处理LOB)的方式编写。...

字母哥博客 2430

Flyway基于HighGoDB实现数据库版本管理

假设我们有一个名为demo的项目,项目的主要交付物就是提供一块叫做demo soft的代码并连接到名为demo db的数据库。如果用一个图来表示上述所意的,应该如下:现在我们有了代码和数据库,这也是大多数初创项目所需的所有内容了。但是随着项目的进展,这种简单的开发模式马上会演变成如下的这种样子:现在我们不止一个环境,而是有了开发、测试、灰度、生产等,由于环境数量的增加,给我们带来了更多的挑战。git、svn等版本管理工具功能强大,可以很好的帮助我们管理代码。

weixin_39676699的博客 1115

数据库版本管理 | flyway

文章目录1. 背景需求1.1 传统部署方式1.3 Flyway部署方式2. Flyway2.1 工作流程2.2 flyway注意事项2.3 flyway中文件命令方式2.4 在SpringBoot项目使用Flyway 1. 背景需求 在数据库设计好,并生成sql后,需要将其部署起来。 1.1 传统部署方式 其对应的操作语句如下: # 拷贝本地文件到容器 docker cp /root/myFile/user.sql mysql:/tmp/user.sql # 在ubuntu中进入docker容器 doc

魏云舒的博客 1311

数据库版本管理工具Flyway入门实战

在进行了如上的实验后,相信我们都已经掌握了flyway的初步使用。目前还是在探索阶段,实际开发中还没有使用起来,后续肯定还会遇到很多问题,本博客会依据实际情况,持续不断更新。

honor_zhang的博客 1218

Flyway-数据库版本管理工具

在之前的公司用过flyway,但是只知道flyway clean migrate命令,但是没有真正的自己搭建过。今天搭建了一下,真心觉得flyway真的是简单美好*_* 官网:https://flywaydb.org/ 官网上是这样描述flyway的优点的: (1)从头开始重新创建数据库 (2)随时清楚数据库所处的状态 (3)确定性地从当前数据库版本迁移到较新版本 特点如下: (1)操作简单,只要配置好数据库链接、用户名、密码,即可执行数据库脚本。 (2)数据库脚本sql文件命名方式简.

CAT 1211
上一篇: oauth2授权码模式demo
下一篇: Druid register mbean error报错解决
varCode
博客等级 码龄9年 11粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值