16个版本
0.2.5 | 2023年1月25日 |
---|---|
0.2.4 | 2023年1月25日 |
0.1.9 | 2023年1月23日 |
#1970 在 数据库接口
60 每月下载
30KB
576 行
SQL DB Creator
通过仅配置数据库的json文件中的数据来生成sql数据库
阅读后请查看示例。
https://github.com/Sok-Bou/SQL-DB-Creator-Example
使用此crate,您可以为多个mysql或postgressql数据库生成并填充数据(可选)。
步骤
- 在src目录下添加一个名为db的文件夹。它必须在src目录下,并且名为'db'。
- 根据您想要的数据库数量添加一个或多个文件夹。大多数情况下只有一个数据库。文件夹的名称将是数据库的名称。
- 添加一个或多个json文件。json文件的名称将是数据库表的名称。
到目前为止,您的文件夹结构应如下所示
📂 src
┣- 📂 db (1)
┃ ┣--- 📂 countries (2)
┃ ┃ ┣ --- 📜 geography.json (3)
┃ ┃ ┗ --- 📜 government.json (4)
┃ ┗--- 📂 flowers (5)
┃ ┃ ┣ --- 📜 infos.json (6)
┃ ┃ ┗ --- 📜 region.json (7)
┣ 📜 main.rs (8)
(1) 必需的名称 'db'
(2) 第一个数据库,名称为 'countries'
(3) 数据库 'countries' 中的表,名称为 'geography'
(4) 数据库 'countries' 中的表,名称为 'government'
(5) 第二个数据库,名称为 'flowers'
(6) 数据库 'flowers' 中的表,名称为 'infos'
(7) 数据库 'flowers' 中的表,名称为 'region'
(8) 主文件
- 现在json文件应该具有特定的结构,以便生成表的列。结构如下所示
(mysql示例。数据库:'countries',表:'geography')
{
"schema": {
"name": "VARCHAR(255)",
"area": "INT(255)",
"region": "VARCHAR(255)",
"costline": "INT(255)",
"borders": "INT(255)",
"is_in_europe": "BIT"
},
"data": [
{
"name": "Germany",
"area": 357021,
"region": "Central Europe",
"costline": 2389,
"borders": 3714,
"is_in_europe": true
},
{
"name": "United States of America",
"area": 9826675,
"region": "North Americs",
"costline": 19920,
"borders": 12191,
"is_in_europe": false
}
]
}
(postgressql示例。数据库:'countries',表:'geography')
{
"schema": {
"name": "VARCHAR(255)",
"area": "INTEGER",
"region": "VARCHAR(255)",
"costline": "INTEGER",
"borders": "INTEGER",
"is_in_europe": "BOOLEAN"
},
"data": [
{
"name": "Germany",
"area": 357021,
"region": "Central Europe",
"costline": 2389,
"borders": 3714,
"is_in_europe": true
},
{
"name": "United States of America",
"area": 9826675,
"region": "North Americs",
"costline": 19920,
"borders": 12191,
"is_in_europe": false
}
]
}
在模式部分包含创建表模式的详细信息,包括列名和数据类型,如上例所示。在数据部分包含填充表的数据的详细信息。数据部分是可选的。我们可以只生成表。当然,如果我们填充表中的数据,我们必须小心值。值应与模式中给出的类型相符。
- 要生成数据库,请在您的main中运行以下代码
(mysql示例)
use sql_db_creator::{ DBType, Config, setup };
fn main() {
let config = Config {
user: String::from("root"),
password: String::from("password"),
host: String::from("localhost")
};
setup(DBType::MySql, config);
}
(postgressql示例)
use sql_db_creator::{ DBType, Config, setup };
fn main() {
let config = Config {
user: String::from("postgres"),
password: String::from("admin"),
host: String::from("localhost")
};
setup(DBType::PostgresSql, config);
}
许可
根据您的选择,许可协议为Apache License, Version 2.0或MIT许可证。除非您明确表示,否则根据Apache-2.0许可证定义的,您有意提交以包含在此软件包中的任何贡献,将按上述方式双授权,不附加任何其他条款或条件。
依赖项
~30–44MB
~880K SLoC