Skip to content

Commit 6ed11c3

Browse files
Add database 'schema' command to retrieve the database schema
1 parent 7f4d51c commit 6ed11c3

File tree

5 files changed

+25
-8
lines changed

5 files changed

+25
-8
lines changed

Cargo.lock

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ features = {}
4646

4747
[dependencies.typedb-driver]
4848
features = []
49+
rev = "02edb1b7c4bcd3f5bc822634d667653964e2ab92"
4950
git = "https://github.com/typedb/typedb-driver"
50-
tag = "3.2.0-rc0"
5151
default-features = false
5252

5353
[dependencies.futures]

dependencies/typedb/repositories.bzl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ def typedb_driver():
1515
git_repository(
1616
name = "typedb_driver",
1717
remote = "https://github.com/typedb/typedb-driver",
18-
tag = "3.2.0-rc0", # sync-marker: do not remove this comment, this is used for sync-dependencies by @typedb_driver
18+
commit = "02edb1b7c4bcd3f5bc822634d667653964e2ab92", # sync-marker: do not remove this comment, this is used for sync-dependencies by @typedb_driver
1919
)
2020

2121
def typeql():

src/main.rs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ use crate::{
2727
cli::Args,
2828
completions::{database_name_completer_fn, file_completer},
2929
operations::{
30-
database_create, database_delete, database_list, transaction_close, transaction_commit, transaction_query,
31-
transaction_read, transaction_rollback, transaction_schema, transaction_source, transaction_write, user_create,
32-
user_delete, user_list, user_update_password,
30+
database_create, database_delete, database_list, database_schema, transaction_close, transaction_commit,
31+
transaction_query, transaction_read, transaction_rollback, transaction_schema, transaction_source,
32+
transaction_write, user_create, user_delete, user_list, user_update_password,
3333
},
3434
repl::{
3535
command::{get_word, parse_one_query, CommandInput, CommandLeaf, Subcommand},
@@ -255,6 +255,12 @@ fn entry_repl(driver: Arc<TypeDBDriver>, runtime: BackgroundRuntime) -> Repl<Con
255255
"Delete the database with the given name.",
256256
CommandInput::new("db", get_word, None, Some(database_name_completer_fn(driver.clone(), runtime.clone()))),
257257
database_delete,
258+
))
259+
.add(CommandLeaf::new_with_input(
260+
"schema",
261+
"Retrieve the TypeQL representation of a database's schema.",
262+
CommandInput::new("db", get_word, None, Some(database_name_completer_fn(driver.clone(), runtime.clone()))),
263+
database_schema,
258264
));
259265

260266
let user_commands = Subcommand::new("user")

src/operations.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,17 @@ pub(crate) fn database_delete(context: &mut ConsoleContext, input: &[String]) ->
5959
Ok(())
6060
}
6161

62+
pub(crate) fn database_schema(context: &mut ConsoleContext, input: &[String]) -> CommandResult {
63+
let driver = context.driver.clone();
64+
let db_name = input[0].clone();
65+
let schema = context
66+
.background_runtime
67+
.run(async move { driver.databases().get(db_name).await?.schema().await })
68+
.map_err(|err| Box::new(err) as Box<dyn Error + Send>)?;
69+
println!("{}", schema);
70+
Ok(())
71+
}
72+
6273
pub(crate) fn user_list(context: &mut ConsoleContext, _input: &[String]) -> CommandResult {
6374
let driver = context.driver.clone();
6475
let users = context

0 commit comments

Comments
 (0)