kurotych / sqlant

Generate PlantUML/Mermaid ER diagram textual description from SQL connection string
MIT License
22 stars 1 forks source link

Add async #28

Closed jayvdb closed 5 months ago

jayvdb commented 5 months ago

postgres cant be used when a binary is already using tokio-postgres .

The result looks something like

thread 'main' panicked at /home/jayvdb/.cargo/registry/src/index.crates.io-6f17d22bba15001f/postgres-0.19.7/src/config.rs:449:44:
Cannot start a runtime from within a runtime. This happens because a function (like `block_on`) attempted to block the current thread while the thread is being used to drive asynchronous tasks.
stack backtrace:
   0:     0x55a102492f06 - std::backtrace_rs::backtrace::libunwind::trace::hd6ffdc229294c06f
                               at /rustc/25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5
   1:     0x55a102492f06 - std::backtrace_rs::backtrace::trace_unsynchronized::h991f79b6e9960513
                               at /rustc/25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x55a102492f06 - std::sys_common::backtrace::_print_fmt::hf4ebe716f7ccda10
                               at /rustc/25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04/library/std/src/sys_common/backtrace.rs:68:5
   3:     0x55a102492f06 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h410d4c66be4e37f9
                               at /rustc/25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04/library/std/src/sys_common/backtrace.rs:44:22
   4:     0x55a1024bef00 - core::fmt::rt::Argument::fmt::he0ff0e0e188c0db5
                               at /rustc/25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04/library/core/src/fmt/rt.rs:142:9
   5:     0x55a1024bef00 - core::fmt::write::he40921d4802ce2ac
                               at /rustc/25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04/library/core/src/fmt/mod.rs:1120:17
   6:     0x55a10248fc0f - std::io::Write::write_fmt::h5de5a4e7037c9b20
                               at /rustc/25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04/library/std/src/io/mod.rs:1846:15
   7:     0x55a102492ce4 - std::sys_common::backtrace::_print::hd8e2e3f655086663
                               at /rustc/25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04/library/std/src/sys_common/backtrace.rs:47:5
   8:     0x55a102492ce4 - std::sys_common::backtrace::print::h11c067a88e3bdb22
                               at /rustc/25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04/library/std/src/sys_common/backtrace.rs:34:9
   9:     0x55a102494547 - std::panicking::default_hook::{{closure}}::h8c832ecb03fde8ea
  10:     0x55a1024942a9 - std::panicking::default_hook::h1633e272b4150cf3
                               at /rustc/25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04/library/std/src/panicking.rs:292:9
  11:     0x55a1024949d8 - std::panicking::rust_panic_with_hook::hb164d19c0c1e71d4
                               at /rustc/25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04/library/std/src/panicking.rs:781:13
  12:     0x55a102494879 - std::panicking::begin_panic_handler::{{closure}}::h0369088c533c20e9
                               at /rustc/25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04/library/std/src/panicking.rs:651:13
  13:     0x55a102493406 - std::sys_common::backtrace::__rust_end_short_backtrace::hc11d910daf35ac2e
                               at /rustc/25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04/library/std/src/sys_common/backtrace.rs:171:18
  14:     0x55a102494604 - rust_begin_unwind
                               at /rustc/25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04/library/std/src/panicking.rs:647:5
  15:     0x55a101e882b5 - core::panicking::panic_fmt::ha6effc2775a0749c
                               at /rustc/25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04/library/core/src/panicking.rs:72:14
  16:     0x55a101ec8355 - tokio::runtime::context::runtime::enter_runtime::h1ab82ef5273af04f
                               at /home/jayvdb/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.37.0/src/runtime/context/runtime.rs:68:5
  17:     0x55a101f02ffa - tokio::runtime::scheduler::current_thread::CurrentThread::block_on::hbd3e9cb432efa502
                               at /home/jayvdb/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.37.0/src/runtime/scheduler/current_thread/mod.rs:167:9
  18:     0x55a101eb1ac1 - tokio::runtime::runtime::Runtime::block_on::he3175ac17f9fdbeb
                               at /home/jayvdb/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.37.0/src/runtime/runtime.rs:349:47
  19:     0x55a101ef8dc8 - postgres::config::Config::connect::h8f34623f68af8311
                               at /home/jayvdb/.cargo/registry/src/index.crates.io-6f17d22bba15001f/postgres-0.19.7/src/config.rs:449:36
  20:     0x55a101f21d4c - postgres::client::Client::connect::h40d6bd9be2682fbe
                               at /home/jayvdb/.cargo/registry/src/index.crates.io-6f17d22bba15001f/postgres-0.19.7/src/client.rs:41:9
  21:     0x55a101f2211f - sqlant::psql_erd_loader::PostgreSqlERDLoader::new::h90c957a49ff85139
                               at /home/jayvdb/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlant-0.3.0/src/psql_erd_loader.rs:109:22
  22:     0x55a101ef91af - sqlant::lookup_parser::h1cf2c027cc365aa3
                               at /home/jayvdb/.cargo/registry/src/index.crates.io-6f17d22bba15001f/sqlant-0.3.0/src/lib.rs:26:17
  23:     0x55a101e9c984 - ros_butane_cli::create_er_diagrams::{{closure}}::ha88918f333d51caf
                               at /home/jayvdb/work/ros-models/utilities/ros-butane-cli/src/main.rs:110:25
  24:     0x55a101e9eb8f - ros_butane_cli::main::{{closure}}::h2656c290d636c08a