跳到主要内容

初始化数据库

要运行 FeatureProbe API,您需要运行 MySQL 数据库(MySQL 5.7 或更新版本)。

创建数据库

连接到 MySQL Server 后,执行以下 SQL 创建 FeatureProbe 数据库:

CREATE DATABASE IF NOT EXISTS `feature_probe` /*!40100 DEFAULT CHARACTER SET utf8 */;

创建表和初始数据

我们提供了两种方式来创建表和初始数据:

基于 Flyway 自动创建

无须特殊配置,FeatureProbe API 原生采用 flyway 对数据库版本管理和自动创建,在 gitub 上你可以看到所有针对数据库的变更 SQL。在您每次启动 FeatureProbe API 时,程序将自动执行 DML/DDL ,无须手工对数据表版本进行维护。

并且,针对数据库的变化您可以查看 feature_probe.flyway_schema_history 中的数据。

手工导入 DML/DDL

如果不希望使用 flyway 自动创建表和管理数据库版本,可以获取原生 DML/DDL 实现手工导入创建。

在使用该方式前需要在应用程序中禁用 flyway 的使用,避免产生冲突。在 api 启动时增加如下参数来禁用 flyway 的执行:

--spring.flyway.enabled=false

操作步骤

SETP1: 下载 api 代码

$ git clone https://github.com/FeatureProbe/FeatureProbe

SETP2: 获取 SQL

$ cd api
$ ls -1 admin/src/main/resources/db/migration/V* \
| sort -V | xargs cat >> rollup.sql

执行完成后将生成 rollup.sql 文件,里面包含了所有 DML 和 DDL。

SETP3: 导入 SQL

将生成的 rollup.sql 导入到 feature_probe 库中即可。

mysql> use feature_probe;
mysql> source ./rollup.sql;

导入完成后使用 show tables 可以看到所有表结构:

mysql> show tables;
+---------------------------+
| Tables_in_feature_probe |
+---------------------------+
| access_token |
| approval_record |
| attribute |
| dictionary |
| environment |
| targeting_segment |
| webhook_settings |
...
提示

建议使用基于 Flyway 方式来自动维护数据库,手工导入 DML/DDL 方式将导致后续无法对表结构进行自动化升级,需要手工维护版本。