diff --git a/Cargo.lock b/Cargo.lock index 80f82bd2..bb9cf90a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -145,7 +145,7 @@ checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.39", ] [[package]] @@ -282,9 +282,9 @@ dependencies = [ [[package]] name = "bstr" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c79ad7fb2dd38f3dabd76b09c6a5a20c038fc0213ef1e9afd30eb777f120f019" +checksum = "542f33a8835a0884b006a0c3df3dadd99c0c3f296ed26c2fdc8028e01ad6230c" dependencies = [ "memchr", "serde", @@ -332,9 +332,9 @@ checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" [[package]] name = "cc" -version = "1.0.83" +version = "1.0.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +checksum = "0f8e7c90afad890484a21653d08b6e209ae34770fb5ee298f9c699fcc1e5c856" dependencies = [ "libc", ] @@ -362,9 +362,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.7" +version = "4.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac495e00dcec98c83465d5ad66c5c4fabd652fd6686e7c6269b117e729a6f17b" +checksum = "2275f18819641850fa26c89acc84d465c1bf91ce57bc2748b28c420473352f64" dependencies = [ "clap_builder", "clap_derive", @@ -372,9 +372,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.7" +version = "4.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c77ed9a32a62e6ca27175d00d29d05ca32e396ea1eb5fb01d8256b669cec7663" +checksum = "07cdf1b148b25c1e1f7a42225e30a0d99a615cd4637eae7365548dd4529b95bc" dependencies = [ "anstream", "anstyle", @@ -391,7 +391,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.39", ] [[package]] @@ -612,9 +612,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0" +checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece" dependencies = [ "humantime", "is-terminal", @@ -631,9 +631,9 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860" +checksum = "7c18ee0ed65a5f1f81cac6b1d213b69c35fa47d4252ad41f1486dbd8226fe36e" dependencies = [ "libc", "windows-sys", @@ -767,7 +767,7 @@ checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.39", ] [[package]] @@ -812,9 +812,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" +checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" dependencies = [ "cfg-if", "libc", @@ -1081,9 +1081,9 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.4.10" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f" +checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829" [[package]] name = "lock_api" @@ -1249,7 +1249,7 @@ checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "ormlite" -version = "0.17.1" +version = "0.17.3" dependencies = [ "chrono", "env_logger", @@ -1267,7 +1267,7 @@ dependencies = [ [[package]] name = "ormlite-attr" -version = "0.17.1" +version = "0.17.3" dependencies = [ "anyhow", "convert_case", @@ -1277,13 +1277,13 @@ dependencies = [ "quote", "sqlmo", "structmeta", - "syn 2.0.38", + "syn 2.0.39", "tracing", ] [[package]] name = "ormlite-cli" -version = "0.17.1" +version = "0.17.3" dependencies = [ "anyhow", "assert_matches", @@ -1302,7 +1302,7 @@ dependencies = [ "sqlmo", "sqlmo_sqlx", "sqlx", - "syn 2.0.38", + "syn 2.0.39", "time", "tokio", "tracing", @@ -1312,7 +1312,7 @@ dependencies = [ [[package]] name = "ormlite-core" -version = "0.17.1" +version = "0.17.3" dependencies = [ "anyhow", "assert_matches", @@ -1324,7 +1324,7 @@ dependencies = [ "sqlmo", "sqlparser", "sqlx", - "syn 2.0.38", + "syn 2.0.39", "thiserror", "tokio", "uuid", @@ -1332,7 +1332,7 @@ dependencies = [ [[package]] name = "ormlite-macro" -version = "0.17.1" +version = "0.17.3" dependencies = [ "itertools 0.11.0", "lazy_static", @@ -1342,7 +1342,7 @@ dependencies = [ "proc-macro2", "quote", "sqlx", - "syn 2.0.38", + "syn 2.0.39", ] [[package]] @@ -1707,9 +1707,9 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" dependencies = [ "base64", ] @@ -1763,22 +1763,22 @@ checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" [[package]] name = "serde" -version = "1.0.190" +version = "1.0.192" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91d3c334ca1ee894a2c6f6ad698fe8c435b76d504b13d436f0685d648d6d96f7" +checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.190" +version = "1.0.192" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c5609f394e5c2bd7fc51efda478004ea80ef42fee983d5c67a65e34f32c0e3" +checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.39", ] [[package]] @@ -1834,9 +1834,9 @@ dependencies = [ [[package]] name = "signature" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" dependencies = [ "digest", "rand_core", @@ -1859,9 +1859,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.11.1" +version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" +checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" [[package]] name = "socket2" @@ -1911,9 +1911,9 @@ dependencies = [ [[package]] name = "sqlmo" -version = "0.16.2" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "615d1dbc919be35b8aed9f23a9957a923a19cb7ff6f594b2a8d12e90d8c9cba6" +checksum = "06eb678be53b70d3e684ea1e458b47d969f9858272a0e5c08fd0234b1edc2f53" dependencies = [ "anyhow", "tracing", @@ -2181,7 +2181,7 @@ dependencies = [ "proc-macro2", "quote", "structmeta-derive", - "syn 2.0.38", + "syn 2.0.39", ] [[package]] @@ -2192,7 +2192,7 @@ checksum = "a60bcaff7397072dca0017d1db428e30d5002e00b6847703e2e42005c95fbe00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.39", ] [[package]] @@ -2214,9 +2214,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.38" +version = "2.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b" +checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" dependencies = [ "proc-macro2", "quote", @@ -2268,7 +2268,7 @@ checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.39", ] [[package]] @@ -2327,9 +2327,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.33.0" +version = "1.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f38200e3ef7995e5ef13baec2f432a6da0aa9ac495b2c0e8f3b7eec2c92d653" +checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9" dependencies = [ "backtrace", "bytes", @@ -2346,13 +2346,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.39", ] [[package]] @@ -2395,7 +2395,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.39", ] [[package]] @@ -2410,9 +2410,9 @@ dependencies = [ [[package]] name = "tracing-log" -version = "0.1.4" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" dependencies = [ "log", "once_cell", @@ -2421,9 +2421,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.17" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" dependencies = [ "nu-ansi-term", "sharded-slab", @@ -2576,7 +2576,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.39", "wasm-bindgen-shared", ] @@ -2598,7 +2598,7 @@ checksum = "c5353b8dab669f5e10f5bd76df26a9360c748f054f862ff5f3f8aae0c7fb3907" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.39", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -2756,7 +2756,7 @@ checksum = "c2f140bda219a26ccc0cdb03dba58af72590c53b22642577d88a927bc5c87d6b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.39", ] [[package]] diff --git a/attr/Cargo.toml b/attr/Cargo.toml index 69703826..3f089fb6 100644 --- a/attr/Cargo.toml +++ b/attr/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ormlite-attr" -version = "0.17.1" +version = "0.17.3" edition = "2021" description = "See `ormlite`." authors = ["Kurt Wolf "] diff --git a/attr/src/lib.rs b/attr/src/lib.rs index 142084c8..cd44db7f 100644 --- a/attr/src/lib.rs +++ b/attr/src/lib.rs @@ -7,8 +7,8 @@ mod ext; mod syndecode; use std::collections::HashMap; -use std::fs; -use std::path::Path; +use std::{env, fs}; +use std::path::{Path, PathBuf}; use anyhow::Context; use syn::{DeriveInput, Item}; use ignore::Walk; @@ -58,19 +58,20 @@ impl Intermediate { Item::Struct(s) => { let attrs = Attributes2::from(s.attrs.as_slice()); if attrs.has_derive("Model") { - tracing::debug!(model=s.ident.to_string(), "Found"); + tracing::debug!(model=%s.ident.to_string(), "Found"); model_structs.push((s, attrs)); } else if attrs.has_derive("Type") { - tracing::debug!(r#type=s.ident.to_string(), "Found"); + tracing::debug!(r#type=%s.ident.to_string(), "Found"); type_structs.push((s, attrs)); } else if attrs.has_derive("ManualType") { - tracing::debug!(r#type=s.ident.to_string(), "Found"); + tracing::debug!(r#type=%s.ident.to_string(), "Found"); type_structs.push((s, attrs)); } } Item::Enum(e) => { let attrs = Attributes2::from(e.attrs.as_slice()); if attrs.has_derive("Type") || attrs.has_derive("ManualType") { + tracing::debug!(r#type=%e.ident.to_string(), "Found"); type_enums.push((e, attrs)); } } @@ -86,12 +87,16 @@ impl Intermediate { } pub fn schema_from_filepaths(paths: &[&Path]) -> anyhow::Result { + let cwd = env::var("PWD").unwrap_or_default(); + let cwd = PathBuf::from(cwd); + let paths = paths.iter().map(|p| cwd.join(p)).collect::>(); let invalid_paths = paths.iter().filter(|p| fs::metadata(p).is_err()).collect::>(); if !invalid_paths.is_empty() { - for path in invalid_paths { + for path in &invalid_paths { tracing::error!(path=path.display().to_string(), "Does not exist"); } - anyhow::bail!("Provided paths that did not exist."); + let paths = invalid_paths.iter().map(|p| p.display().to_string()).collect::>().join(", "); + anyhow::bail!("Provided paths that did not exist: {}", paths); } let walk = paths.iter().flat_map(Walk::new); @@ -111,7 +116,7 @@ pub fn schema_from_filepaths(paths: &[&Path]) -> anyhow::Result { let contents = fs::read_to_string(&entry) .context(format!("failed to read file: {}", entry.display()))?; tracing::debug!(file=entry.display().to_string(), "Checking for Model, Type, ManualType derive attrs"); - if !contents.contains("Model") { + if !(contents.contains("Model") || contents.contains("Type") || contents.contains("ManualType")) { continue; } let ast = syn::parse_file(&contents) diff --git a/attr/src/syndecode.rs b/attr/src/syndecode.rs index af3a1997..8af2069e 100644 --- a/attr/src/syndecode.rs +++ b/attr/src/syndecode.rs @@ -1,4 +1,4 @@ -use proc_macro2::{TokenStream}; +use proc_macro2::{TokenStream, TokenTree}; use syn::Meta; #[derive(Debug)] @@ -26,8 +26,6 @@ impl Attributes2 { } fn decode_traits_from_derive_tokens(derives: &mut Derives, tokens: &TokenStream) { - use proc_macro2::TokenTree; - let mut iter = tokens.clone().into_iter().peekable(); while let Some(tok) = iter.next() { @@ -51,6 +49,12 @@ fn decode_traits_from_derive_tokens(derives: &mut Derives, tokens: &TokenStream) } _ = iter.next(); // consume the colon _ = iter.next(); // consume another colon + let p = iter.peek(); + if matches!(p, Some(TokenTree::Ident(i)) if i.to_string() == "types") { + _ = iter.next(); // consume the type + _ = iter.next(); // consume a colon + _ = iter.next(); // consume another colon + } continue; } else { panic!("Unexpected token in derive attribute: {:?}", p); @@ -78,6 +82,20 @@ impl From<&[syn::Attribute]> for Attributes2 { } else if ident == "repr" { let ident = l.tokens.clone().into_iter().next().expect("Encountered a repr attribute without an argument."); repr = Some(ident.to_string()); + } else if ident == "cfg_attr" { + let mut iter = l.tokens.clone().into_iter().skip_while(|tok| !matches!(tok, TokenTree::Punct(p) if p.as_char() == ',')); + iter.next(); // skip the , + while let Some(tok) = iter.next() { + match tok { + TokenTree::Ident(i) => { + if i.to_string() == "derive" { + let Some(TokenTree::Group(toks)) = iter.next() else { panic!("Expected a token group after derive") }; + decode_traits_from_derive_tokens(&mut derives, &toks.stream()); + } + } + _ => {} + } + } } } _ => {} @@ -130,6 +148,70 @@ pub struct QuerySet { assert_eq!(attr.derives.is_model, true); assert_eq!(attr.derives.is_type, true); assert_eq!(attr.derives.is_manual_type, false); + } + + #[test] + fn test_cfg_attr() { + // the doc string is the regression test + let code = r#" +#[derive(Debug, Serialize, Deserialize, Clone, Copy)] +#[cfg_attr( + target_arch = "wasm32", + derive(tsify::Tsify), + tsify(into_wasm_abi, from_wasm_abi) +)] +#[cfg_attr( + not(target_arch = "wasm32"), + derive( + sqlx::Type, + strum::IntoStaticStr, + strum::EnumString, + ), + strum(serialize_all = "snake_case") +)] +#[serde(rename_all = "snake_case")] +pub enum Privacy { + Private, + Team, + Public, +} +"#; + let file: syn::File = syn::parse_str(code).unwrap(); + let syn::Item::Enum(item) = file.items.first().unwrap() else { panic!() }; + let attr = Attributes2::from(item.attrs.as_slice()); + assert_eq!(attr.repr, None); + assert_eq!(attr.derives.is_model, false); + assert_eq!(attr.derives.is_type, true); + assert_eq!(attr.derives.is_manual_type, false); + } + #[test] + fn test_cfg_attr2() { + let code = r#" +#[derive(Debug, Serialize, Deserialize, Clone, Copy)] +#[cfg_attr( + target_arch = "wasm32", + derive(tsify::Tsify), + tsify(into_wasm_abi, from_wasm_abi) +)] +#[cfg_attr( + not(target_arch = "wasm32"), + derive(ormlite::types::ManualType, strum::IntoStaticStr, strum::EnumString), + strum(serialize_all = "snake_case") +)] +#[serde(rename_all = "snake_case")] +pub enum Privacy { + Private, + Team, + Public, +} +"#; + let file: syn::File = syn::parse_str(code).unwrap(); + let syn::Item::Enum(item) = file.items.first().unwrap() else { panic!() }; + let attr = Attributes2::from(item.attrs.as_slice()); + assert_eq!(attr.repr, None); + assert_eq!(attr.derives.is_model, false); + assert_eq!(attr.derives.is_type, false); + assert_eq!(attr.derives.is_manual_type, true); } } diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 8d6366ba..33fb35f9 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ormlite-cli" -version = "0.17.1" +version = "0.17.3" edition = "2021" description = "An ORM for people who love SQL. Use the `ormlite` crate, not this one." authors = ["Kurt Wolf "] diff --git a/cli/src/command/migrate.rs b/cli/src/command/migrate.rs index c6bc6ecd..d9764473 100644 --- a/cli/src/command/migrate.rs +++ b/cli/src/command/migrate.rs @@ -244,9 +244,9 @@ impl Migrate { file_name.push_str(&self.name); let migration_body = migration.as_ref().map(|m| { m.statements.iter() - .map(|s| s.to_sql(Dialect::Postgres)) + .map(|s| s.to_sql(Dialect::Postgres) + ";") .collect::>() - .join(";\n") + .join("\n") }).unwrap_or_default(); if self.reversible { create_migration(&folder, file_name.clone(), MigrationType::Up, &migration_body)?; @@ -261,9 +261,10 @@ impl Migrate { println!("It auto-generated the following actions:"); for statement in &migration.statements { match statement { - Statement::CreateTable(t) => println!("Create table {} with columns: {}", &t.name, t.columns.iter().map(|c| c.name.to_string()).collect::>().join(", ")), + Statement::CreateTable(s) => println!("Create table {} with columns: {}", &s.name, s.columns.iter().map(|c| c.name.to_string()).collect::>().join(", ")), Statement::CreateIndex(s) => println!("Create index {} on {}", &s.name, &s.table), Statement::AlterTable(s) => println!("Alter table {}", &s.name), + Statement::Update(s) => println!("Update table {}", &s.table), } } } diff --git a/core/Cargo.toml b/core/Cargo.toml index 6090ab29..0ba49f95 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ormlite-core" -version = "0.17.1" +version = "0.17.3" edition = "2021" description = "An ORM for people who love SQL. Use the `ormlite` crate, not this one." authors = ["Kurt Wolf "] diff --git a/macro/Cargo.toml b/macro/Cargo.toml index fd766be9..a1e26350 100644 --- a/macro/Cargo.toml +++ b/macro/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ormlite-macro" -version = "0.17.1" +version = "0.17.3" edition = "2021" description = "An ORM for people who love SQL. Use the `ormlite` crate, not this one." authors = ["Kurt Wolf "] @@ -24,7 +24,7 @@ default-mysql = ["mysql"] syn = { version = "2", features = ["derive", "parsing"] } quote = "1" proc-macro2 = "1" -ormlite-core = { path = "../core", version = "0.17.1"} +ormlite-core = { path = "../core", version = "0.17.3"} ormlite-attr = { path = "../attr", version = "0.17" } sqlx = "0.7" lazy_static = "1" diff --git a/ormlite/Cargo.toml b/ormlite/Cargo.toml index 5997be85..4a2f0dff 100644 --- a/ormlite/Cargo.toml +++ b/ormlite/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ormlite" -version = "0.17.1" +version = "0.17.3" edition = "2021" authors = ["Kurt Wolf "] description = "An ORM for people who love SQL" @@ -49,8 +49,8 @@ default-mysql = ["mysql", "ormlite-macro/default-mysql"] [dependencies] sqlx = { version = "0.7" } tokio = { version = "1.24.1", features = ["full"] } -ormlite-macro = { path = "../macro" , version = "0.17.1"} -ormlite-core = { path = "../core" , version = "0.17.1"} +ormlite-macro = { path = "../macro" , version = "0.17.3"} +ormlite-core = { path = "../core" , version = "0.17.3"} sqlx-core = "0.7" sqlmo = "0.16" tokio-stream = "0.1.14"