Skip to content

Jasperav/SQLiteParser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SQLite parser

Latest Version Build Status

Usage

This crate will make it easy to parse a SQLite database. This can be useful for code generation.

Add a dependency on this crate by adding this line under [dependencies] in your Cargo.toml file:

sqlite_parser = "*"

Than implement the Parser trait and call the parse function with the implementing struct and the location of the SQLite file. There is a convenience method that doesn't require an implementing Parser trait called parse_no_parser.

Calling the parser

There are 2 ways of using this library

  • Implement the Parser trait and call the parse function.
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 { });
  • Don't implement the Parser trait and call the parse_no_parser function.
use sqlite_parser::parse_no_parser;

/// Start the parsing
let _tables = parse_no_parser(&my_sqlite_file_location);
/// Do stuff with the tables property!

What will it parse?

  • Tables -> represents a table in SQLite
    • Table_name -> the table name
    • [Columns] -> the columns of the table
      • Id -> the id of the column (starts with 0 and is incremented for each ever-created column)
      • Name -> the name of the column
      • Type of the column (Text, Numeric, Blob, Real, Integer)
      • Nullable -> checks if the column is nullable
      • Part of the primary key -> checks if this column is part of the primary key
    • [Foreign keys] -> the foreign keys of the table
      • Id -> the id of the foreign key
      • Table -> the table it refers to
      • [From_column] -> the columns it refers from (own table)
      • [To_column] -> the columns it refers to (referring to table)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages