1use crate::migration::Migrator;
2
3pub mod builder;
4pub mod converters;
5pub mod error;
6pub mod macros;
7pub mod migration;
8#[cfg(feature = "test_container")]
9pub mod test_container;
10
11#[cfg(test)]
12mod tests {
13 use include_dir::include_dir;
14
15 use crate::migration::Migrator;
16 use crate::test_container::get_or_create_ydb_instance;
17 use crate::{query, select, update};
18
19 #[tokio::test]
20 async fn should_create_query() {
21 let (_node, mut client) = get_or_create_ydb_instance("should_create_query").await;
22 let mut migrator =
23 Migrator::new_from_dir(&include_dir!("$CARGO_MANIFEST_DIR/test-migration"));
24 migrator.migrate(&mut client).await.unwrap();
25
26 let id = 124;
27 update!(
28 client.table_client(),
29 query!("insert into a (id) values($id)", id=>id)
30 )
31 .await
32 .unwrap();
33
34 let result: Vec<i32> = select!(client.table_client(), query!("select * from a"), id=>i32)
35 .await
36 .unwrap();
37
38 assert!(result.iter().any(|v| *v == id));
39 }
40}