21个版本
0.1.20 | 2023年12月28日 |
---|---|
0.1.19 | 2023年10月7日 |
0.1.18 | 2023年6月8日 |
0.1.17 | 2023年2月13日 |
0.1.7 | 2021年1月29日 |
#998 在 数据库接口
每月101 次下载
30KB
625 行
SQLite解析器
使用方法
此crate将使解析SQLite数据库变得容易。这对于代码生成很有用。
在您的Cargo.toml
文件中,通过添加以下行来添加对此crate的依赖关系:
sqlite_parser= "*"
然后实现Parser
特质并使用实现struct
和SQLite文件的位置调用parse
函数。还有一个不需要实现Parser
特质的方便方法,即parse_no_parser
。
调用解析器
使用此库有两种方式
- 实现
Parser
特质并调用parse
函数。
use sqlite_parser::{parse, Parser, Table, Metadata};
/// Create a parse struct to process the tables
/// Note: there is a convenience method `parse_no_parser` that doesn't require a parser.
struct Parse;
impl Parser for Parse {
fn process_tables(&mut self, meta_data: Metadata) {
// Do something with the tables
}
}
/// Start the parsing
parse(&my_sqlite_file_location, &mut Parse { });
- 不实现
Parser
特质并调用parse_no_parser
函数。
use sqlite_parser::parse_no_parser;
/// Start the parsing
let _tables = parse_no_parser(&my_sqlite_file_location);
/// Do stuff with the tables property!
它会解析什么?
- 表格 -> 表示SQLite中的表
- Table_name -> 表名
- [Columns] -> 表的列
- Id -> 列的id(从0开始,并为每个创建的列递增)
- Name -> 列名
- 列的类型(Text,Numeric,Blob,Real,Integer)
- Nullable -> 检查列是否可为空
- 主键的一部分 -> 检查此列是否为主键的一部分
- [Foreign keys] -> 表的外键
- Id -> 外键的id
- Table -> 它引用的表
- [From_column] -> 它引用的列(自己的表)
- [To_column] -> 它引用的列(引用表)
依赖项
~22MB
~425K SLoC