#sql-database #mysql #relational #postgressql

sql_db_creator

通过仅配置数据库的json文件中的数据来生成sql数据库

16个版本

0.2.5 2023年1月25日
0.2.4 2023年1月25日
0.1.9 2023年1月23日

#1970数据库接口

Download history 1/week @ 2024-03-14 226/week @ 2024-03-21 4/week @ 2024-03-28 1/week @ 2024-04-04

60 每月下载

MIT/Apache

30KB
576

SQL DB Creator

通过仅配置数据库的json文件中的数据来生成sql数据库

阅读后请查看示例。

https://github.com/Sok-Bou/SQL-DB-Creator-Example

使用此crate,您可以为多个mysql或postgressql数据库生成并填充数据(可选)。

步骤

  1. 在src目录下添加一个名为db的文件夹。它必须在src目录下,并且名为'db'。
  2. 根据您想要的数据库数量添加一个或多个文件夹。大多数情况下只有一个数据库。文件夹的名称将是数据库的名称。
  3. 添加一个或多个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) 主文件


  1. 现在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
        }
    ]
}

在模式部分包含创建表模式的详细信息,包括列名和数据类型,如上例所示。在数据部分包含填充表的数据的详细信息。数据部分是可选的。我们可以只生成表。当然,如果我们填充表中的数据,我们必须小心值。值应与模式中给出的类型相符。


  1. 要生成数据库,请在您的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.0MIT许可证
除非您明确表示,否则根据Apache-2.0许可证定义的,您有意提交以包含在此软件包中的任何贡献,将按上述方式双授权,不附加任何其他条款或条件。

依赖项

~30–44MB
~880K SLoC