added seaorm tables

Added gruppe, rolle, benutzer, dienststellen and rollen_gruppen
This commit is contained in:
keiner 2024-11-08 21:04:32 +01:00
parent 5ee9b3cf38
commit 14002b357b
17 changed files with 1252 additions and 392 deletions

830
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -4,11 +4,14 @@ version = "0.1.0"
edition = "2021"
[dependencies]
futures = "0.3.30"
sea-orm = { version = "^0.12.5", features = [
futures = "0.3.31"
sea-orm = { version = "1.1.1", features = [
"sqlx-postgres",
"runtime-async-std-native-tls",
"macros",
] }
serde = "1.0.203"
serde_json = "1.0.117"
serde = "1.0.214"
serde_json = "1.0.132"
migration = { path = "migration" }

410
migration/Cargo.lock generated
View File

@ -24,7 +24,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
dependencies = [
"cfg-if",
"getrandom",
"once_cell",
"version_check",
"zerocopy",
@ -156,8 +155,8 @@ checksum = "c8828ec6e544c02b0d6691d21ed9f9218d0384a82542855073c2a3f58304aaf0"
dependencies = [
"async-task",
"concurrent-queue",
"fastrand 2.1.0",
"futures-lite 2.3.0",
"fastrand",
"futures-lite",
"slab",
]
@ -169,62 +168,33 @@ checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c"
dependencies = [
"async-channel 2.3.1",
"async-executor",
"async-io 2.3.3",
"async-lock 3.4.0",
"async-io",
"async-lock",
"blocking",
"futures-lite 2.3.0",
"futures-lite",
"once_cell",
"tokio",
]
[[package]]
name = "async-io"
version = "1.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
dependencies = [
"async-lock 2.8.0",
"autocfg",
"cfg-if",
"concurrent-queue",
"futures-lite 1.13.0",
"log",
"parking",
"polling 2.8.0",
"rustix 0.37.27",
"slab",
"socket2 0.4.10",
"waker-fn",
]
[[package]]
name = "async-io"
version = "2.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0d6baa8f0178795da0e71bc42c9e5d13261aac7ee549853162e66a241ba17964"
dependencies = [
"async-lock 3.4.0",
"async-lock",
"cfg-if",
"concurrent-queue",
"futures-io",
"futures-lite 2.3.0",
"futures-lite",
"parking",
"polling 3.7.1",
"rustix 0.38.34",
"polling",
"rustix",
"slab",
"tracing",
"windows-sys 0.52.0",
]
[[package]]
name = "async-lock"
version = "2.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b"
dependencies = [
"event-listener 2.5.3",
]
[[package]]
name = "async-lock"
version = "3.4.0"
@ -238,20 +208,20 @@ dependencies = [
[[package]]
name = "async-std"
version = "1.12.0"
version = "1.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d"
checksum = "c634475f29802fde2b8f0b505b1bd00dfe4df7d4a000f0b36f7671197d5c3615"
dependencies = [
"async-attributes",
"async-channel 1.9.0",
"async-global-executor",
"async-io 1.13.0",
"async-lock 2.8.0",
"async-io",
"async-lock",
"crossbeam-utils",
"futures-channel",
"futures-core",
"futures-io",
"futures-lite 1.13.0",
"futures-lite",
"gloo-timers",
"kv-log-macro",
"log",
@ -340,9 +310,9 @@ dependencies = [
[[package]]
name = "base64"
version = "0.21.7"
version = "0.22.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
[[package]]
name = "bitflags"
@ -374,7 +344,7 @@ dependencies = [
"async-channel 2.3.1",
"async-task",
"futures-io",
"futures-lite 2.3.0",
"futures-lite",
"piper",
]
@ -531,14 +501,37 @@ dependencies = [
]
[[package]]
name = "derivative"
version = "2.2.0"
name = "darling"
version = "0.20.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989"
dependencies = [
"darling_core",
"darling_macro",
]
[[package]]
name = "darling_core"
version = "0.20.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5"
dependencies = [
"fnv",
"ident_case",
"proc-macro2",
"quote",
"syn 1.0.109",
"syn 2.0.66",
]
[[package]]
name = "darling_macro"
version = "0.20.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806"
dependencies = [
"darling_core",
"quote",
"syn 2.0.66",
]
[[package]]
@ -621,21 +614,18 @@ dependencies = [
"pin-project-lite",
]
[[package]]
name = "fastrand"
version = "1.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
dependencies = [
"instant",
]
[[package]]
name = "fastrand"
version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a"
[[package]]
name = "fnv"
version = "1.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
[[package]]
name = "form_urlencoded"
version = "1.2.1"
@ -692,28 +682,13 @@ version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
[[package]]
name = "futures-lite"
version = "1.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce"
dependencies = [
"fastrand 1.9.0",
"futures-core",
"futures-io",
"memchr",
"parking",
"pin-project-lite",
"waker-fn",
]
[[package]]
name = "futures-lite"
version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5"
dependencies = [
"fastrand 2.1.0",
"fastrand",
"futures-core",
"futures-io",
"parking",
@ -784,9 +759,9 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
[[package]]
name = "gloo-timers"
version = "0.2.6"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c"
checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994"
dependencies = [
"futures-channel",
"futures-core",
@ -806,9 +781,9 @@ dependencies = [
[[package]]
name = "hashlink"
version = "0.8.4"
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7"
checksum = "6ba4ff7128dee98c7dc9794b6a411377e1404dba1c97deb8d1a55297bd25d8af"
dependencies = [
"hashbrown",
]
@ -818,9 +793,6 @@ name = "heck"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
dependencies = [
"unicode-segmentation",
]
[[package]]
name = "heck"
@ -890,6 +862,12 @@ dependencies = [
"cc",
]
[[package]]
name = "ident_case"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
[[package]]
name = "idna"
version = "0.5.0"
@ -921,26 +899,6 @@ dependencies = [
"syn 2.0.66",
]
[[package]]
name = "instant"
version = "0.1.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222"
dependencies = [
"cfg-if",
]
[[package]]
name = "io-lifetimes"
version = "1.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
dependencies = [
"hermit-abi",
"libc",
"windows-sys 0.48.0",
]
[[package]]
name = "is_terminal_polyfill"
version = "1.70.0"
@ -992,12 +950,6 @@ version = "0.2.155"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
[[package]]
name = "linux-raw-sys"
version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
[[package]]
name = "linux-raw-sys"
version = "0.4.14"
@ -1137,9 +1089,9 @@ dependencies = [
[[package]]
name = "ouroboros"
version = "0.17.2"
version = "0.18.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2ba07320d39dfea882faa70554b4bd342a5f273ed59ba7c1c6b4c840492c954"
checksum = "944fa20996a25aded6b4795c6d63f10014a7a83f8be9828a11860b08c5fc4a67"
dependencies = [
"aliasable",
"ouroboros_macro",
@ -1148,13 +1100,14 @@ dependencies = [
[[package]]
name = "ouroboros_macro"
version = "0.17.2"
version = "0.18.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec4c6225c69b4ca778c0aea097321a64c421cf4577b331c61b229267edabb6f8"
checksum = "39b0deead1528fd0e5947a8546a9642a9777c25f6e1e26f34c97b204bbb465bd"
dependencies = [
"heck 0.4.1",
"proc-macro-error",
"itertools",
"proc-macro2",
"proc-macro2-diagnostics",
"quote",
"syn 2.0.66",
]
@ -1219,26 +1172,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae1d5c74c9876f070d3e8fd503d748c7d974c3e48da8f41350fa5222ef9b4391"
dependencies = [
"atomic-waker",
"fastrand 2.1.0",
"fastrand",
"futures-io",
]
[[package]]
name = "polling"
version = "2.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce"
dependencies = [
"autocfg",
"bitflags 1.3.2",
"cfg-if",
"concurrent-queue",
"libc",
"log",
"pin-project-lite",
"windows-sys 0.48.0",
]
[[package]]
name = "polling"
version = "3.7.1"
@ -1249,7 +1186,7 @@ dependencies = [
"concurrent-queue",
"hermit-abi",
"pin-project-lite",
"rustix 0.38.34",
"rustix",
"tracing",
"windows-sys 0.52.0",
]
@ -1293,6 +1230,19 @@ dependencies = [
"unicode-ident",
]
[[package]]
name = "proc-macro2-diagnostics"
version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.66",
"version_check",
"yansi",
]
[[package]]
name = "quote"
version = "1.0.36"
@ -1415,20 +1365,6 @@ version = "0.1.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
[[package]]
name = "rustix"
version = "0.37.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2"
dependencies = [
"bitflags 1.3.2",
"errno",
"io-lifetimes",
"libc",
"linux-raw-sys 0.3.8",
"windows-sys 0.48.0",
]
[[package]]
name = "rustix"
version = "0.38.34"
@ -1438,37 +1374,47 @@ dependencies = [
"bitflags 2.5.0",
"errno",
"libc",
"linux-raw-sys 0.4.14",
"linux-raw-sys",
"windows-sys 0.52.0",
]
[[package]]
name = "rustls"
version = "0.21.10"
version = "0.23.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba"
checksum = "5fbb44d7acc4e873d613422379f69f237a1b141928c02f6bc6ccfddddc2d7993"
dependencies = [
"once_cell",
"ring",
"rustls-pki-types",
"rustls-webpki",
"sct",
"subtle",
"zeroize",
]
[[package]]
name = "rustls-pemfile"
version = "1.0.4"
version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50"
dependencies = [
"base64",
"rustls-pki-types",
]
[[package]]
name = "rustls-webpki"
version = "0.101.7"
name = "rustls-pki-types"
version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b"
[[package]]
name = "rustls-webpki"
version = "0.102.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9"
dependencies = [
"ring",
"rustls-pki-types",
"untrusted",
]
@ -1484,16 +1430,6 @@ version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
[[package]]
name = "sct"
version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
dependencies = [
"ring",
"untrusted",
]
[[package]]
name = "sea-bae"
version = "0.2.0"
@ -1509,9 +1445,9 @@ dependencies = [
[[package]]
name = "sea-orm"
version = "0.12.15"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c8814e37dc25de54398ee62228323657520b7f29713b8e238649385dbe473ee0"
checksum = "4c4872675cc5d5d399a2a202c60f3a393ec8d3f3307c36adb166517f348e4db5"
dependencies = [
"async-stream",
"async-trait",
@ -1531,9 +1467,9 @@ dependencies = [
[[package]]
name = "sea-orm-cli"
version = "0.12.15"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "620bc560062ae251b1366bde43b3f1508445cab5c2c8cbdb397034638ab1b357"
checksum = "0aefbd960c9ed7b2dfbab97b11890f5d8c314ad6e2f68c7b36c73ea0967fcc25"
dependencies = [
"chrono",
"clap",
@ -1548,9 +1484,9 @@ dependencies = [
[[package]]
name = "sea-orm-macros"
version = "0.12.15"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5e115c6b078e013aa963cc2d38c196c2c40b05f03d0ac872fe06b6e0d5265603"
checksum = "85f714906b72e7265c0b2077d0ad8f235dabebda513c92f1326d5d40cef0dd01"
dependencies = [
"heck 0.4.1",
"proc-macro2",
@ -1562,9 +1498,9 @@ dependencies = [
[[package]]
name = "sea-orm-migration"
version = "0.12.15"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ee8269bc6ff71afd6b78aa4333ac237a69eebd2cdb439036291e64fb4b8db23c"
checksum = "aa7bbfbe3bec60b5925193acc9c98b9f8ae9853f52c8004df0c1ea5193c01ea0"
dependencies = [
"async-trait",
"clap",
@ -1579,11 +1515,10 @@ dependencies = [
[[package]]
name = "sea-query"
version = "0.30.7"
version = "0.32.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4166a1e072292d46dc91f31617c2a1cdaf55a8be4b5c9f4bf2ba248e3ac4999b"
checksum = "ff504d13b5e4b52fffcf2fb203d0352a5722fa5151696db768933e41e1e591bb"
dependencies = [
"derivative",
"inherent",
"ordered-float",
"sea-query-derive",
@ -1591,9 +1526,9 @@ dependencies = [
[[package]]
name = "sea-query-binder"
version = "0.5.0"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "36bbb68df92e820e4d5aeb17b4acd5cc8b5d18b2c36a4dd6f4626aabfa7ab1b9"
checksum = "b0019f47430f7995af63deda77e238c17323359af241233ec768aba1faea7608"
dependencies = [
"sea-query",
"sqlx",
@ -1601,10 +1536,11 @@ dependencies = [
[[package]]
name = "sea-query-derive"
version = "0.4.1"
version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "25a82fcb49253abcb45cdcb2adf92956060ec0928635eb21b4f7a6d8f25ab0bc"
checksum = "9834af2c4bd8c5162f00c89f1701fb6886119a88062cf76fe842ea9e232b9839"
dependencies = [
"darling",
"heck 0.4.1",
"proc-macro2",
"quote",
@ -1614,9 +1550,9 @@ dependencies = [
[[package]]
name = "sea-schema"
version = "0.14.2"
version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "30d148608012d25222442d1ebbfafd1228dbc5221baf4ec35596494e27a2394e"
checksum = "aab1592d17860a9a8584d9b549aebcd06f7bdc3ff615f71752486ba0b05b1e6e"
dependencies = [
"futures",
"sea-query",
@ -1625,14 +1561,14 @@ dependencies = [
[[package]]
name = "sea-schema-derive"
version = "0.2.0"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c6f686050f76bffc4f635cda8aea6df5548666b830b52387e8bc7de11056d11e"
checksum = "debdc8729c37fdbf88472f97fd470393089f997a909e535ff67c544d18cfccf0"
dependencies = [
"heck 0.4.1",
"proc-macro2",
"quote",
"syn 1.0.109",
"syn 2.0.66",
]
[[package]]
@ -1700,15 +1636,8 @@ name = "smallvec"
version = "1.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
[[package]]
name = "socket2"
version = "0.4.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d"
dependencies = [
"libc",
"winapi",
"serde",
]
[[package]]
@ -1740,9 +1669,9 @@ dependencies = [
[[package]]
name = "sqlx"
version = "0.7.4"
version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c9a2ccff1a000a5a59cd33da541d9f2fdcd9e6e8229cc200565942bff36d0aaa"
checksum = "93334716a037193fac19df402f8571269c84a00852f6a7066b5d2616dcd64d3e"
dependencies = [
"sqlx-core",
"sqlx-macros",
@ -1751,23 +1680,23 @@ dependencies = [
[[package]]
name = "sqlx-core"
version = "0.7.4"
version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "24ba59a9342a3d9bab6c56c118be528b27c9b60e490080e9711a04dccac83ef6"
checksum = "d4d8060b456358185f7d50c55d9b5066ad956956fddec42ee2e8567134a8936e"
dependencies = [
"ahash",
"atoi",
"byteorder",
"bytes",
"crc",
"crossbeam-queue",
"either",
"event-listener 2.5.3",
"event-listener 5.3.1",
"futures-channel",
"futures-core",
"futures-intrusive",
"futures-io",
"futures-util",
"hashbrown",
"hashlink",
"hex",
"indexmap",
@ -1793,26 +1722,26 @@ dependencies = [
[[package]]
name = "sqlx-macros"
version = "0.7.4"
version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4ea40e2345eb2faa9e1e5e326db8c34711317d2b5e08d0d5741619048a803127"
checksum = "cac0692bcc9de3b073e8d747391827297e075c7710ff6276d9f7a1f3d58c6657"
dependencies = [
"proc-macro2",
"quote",
"sqlx-core",
"sqlx-macros-core",
"syn 1.0.109",
"syn 2.0.66",
]
[[package]]
name = "sqlx-macros-core"
version = "0.7.4"
version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5833ef53aaa16d860e92123292f1f6a3d53c34ba8b1969f152ef1a7bb803f3c8"
checksum = "1804e8a7c7865599c9c79be146dc8a9fd8cc86935fa641d3ea58e5f0688abaa5"
dependencies = [
"dotenvy",
"either",
"heck 0.4.1",
"heck 0.5.0",
"hex",
"once_cell",
"proc-macro2",
@ -1822,7 +1751,7 @@ dependencies = [
"sha2",
"sqlx-core",
"sqlx-postgres",
"syn 1.0.109",
"syn 2.0.66",
"tempfile",
"tokio",
"url",
@ -1830,9 +1759,9 @@ dependencies = [
[[package]]
name = "sqlx-postgres"
version = "0.7.4"
version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7c824eb80b894f926f89a0b9da0c7f435d27cdd35b8c655b114e58223918577e"
checksum = "6fa91a732d854c5d7726349bb4bb879bb9478993ceb764247660aee25f67c2f8"
dependencies = [
"atoi",
"base64",
@ -1891,9 +1820,9 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
[[package]]
name = "strum"
version = "0.25.0"
version = "0.26.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125"
checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06"
[[package]]
name = "subtle"
@ -1930,8 +1859,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
dependencies = [
"cfg-if",
"fastrand 2.1.0",
"rustix 0.38.34",
"fastrand",
"rustix",
"windows-sys 0.52.0",
]
@ -1992,7 +1921,7 @@ dependencies = [
"mio",
"num_cpus",
"pin-project-lite",
"socket2 0.5.7",
"socket2",
"windows-sys 0.48.0",
]
@ -2087,12 +2016,6 @@ version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e4259d9d4425d9f0661581b804cb85fe66a4c631cadd8f490d1c13a35d5d9291"
[[package]]
name = "unicode-segmentation"
version = "1.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
[[package]]
name = "unicode_categories"
version = "0.1.1"
@ -2134,12 +2057,6 @@ version = "0.9.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
[[package]]
name = "waker-fn"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7"
[[package]]
name = "wasi"
version = "0.11.0+wasi-snapshot-preview1"
@ -2230,9 +2147,12 @@ dependencies = [
[[package]]
name = "webpki-roots"
version = "0.25.4"
version = "0.26.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1"
checksum = "841c67bff177718f1d4dfefde8d8f0e78f9b6589319ba88312f567fc5841a958"
dependencies = [
"rustls-pki-types",
]
[[package]]
name = "whoami"
@ -2244,28 +2164,6 @@ dependencies = [
"wasite",
]
[[package]]
name = "winapi"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
dependencies = [
"winapi-i686-pc-windows-gnu",
"winapi-x86_64-pc-windows-gnu",
]
[[package]]
name = "winapi-i686-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
[[package]]
name = "winapi-x86_64-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "windows-core"
version = "0.52.0"
@ -2414,6 +2312,12 @@ version = "0.52.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
[[package]]
name = "yansi"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049"
[[package]]
name = "zerocopy"
version = "0.7.34"
@ -2433,3 +2337,9 @@ dependencies = [
"quote",
"syn 2.0.66",
]
[[package]]
name = "zeroize"
version = "1.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde"

View File

@ -9,14 +9,8 @@ name = "migration"
path = "src/lib.rs"
[dependencies]
async-std = { version = "1.12.0", features = ["attributes", "tokio1"] }
async-std = { version = "1.13.0", features = ["attributes", "tokio1"] }
[dependencies.sea-orm-migration]
version = "0.12.15"
features = [
# Enable at least one `ASYNC_RUNTIME` and `DATABASE_DRIVER` feature if you want to run migration via CLI.
# View the list of supported features at https://www.sea-ql.org/SeaORM/docs/install-and-config/database-and-async-runtime.
# e.g.
"runtime-tokio-rustls", # `ASYNC_RUNTIME` feature
"sqlx-postgres", # `DATABASE_DRIVER` feature
]
version = "1.1.0"
features = ["runtime-tokio-rustls", "sqlx-postgres"]

View File

@ -3,6 +3,11 @@ pub use sea_orm_migration::prelude::*;
mod m20240602_100749_create_typ;
mod m20240602_100754_create_hersteller;
mod m20240602_100800_create_modell;
mod m20240618_151728_create_gruppe;
mod m20240618_151732_create_rolle;
mod m20240618_151739_create_benutzer;
mod m20240619_084657_create_rollen_gruppen;
mod m20240620_121703_create_dienststellen;
pub struct Migrator;
@ -13,6 +18,11 @@ impl MigratorTrait for Migrator {
Box::new(m20240602_100749_create_typ::Migration),
Box::new(m20240602_100754_create_hersteller::Migration),
Box::new(m20240602_100800_create_modell::Migration),
Box::new(m20240618_151728_create_gruppe::Migration),
Box::new(m20240618_151732_create_rolle::Migration),
Box::new(m20240618_151739_create_benutzer::Migration),
Box::new(m20240619_084657_create_rollen_gruppen::Migration),
Box::new(m20240620_121703_create_dienststellen::Migration),
]
}
}

View File

@ -0,0 +1,34 @@
use sea_orm_migration::prelude::*;
#[derive(DeriveMigrationName)]
pub struct Migration;
#[async_trait::async_trait]
impl MigrationTrait for Migration {
async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
manager
.create_table(
Table::create()
.table(Gruppe::Table)
.if_not_exists()
.col(ColumnDef::new(Gruppe::Id).uuid().not_null().primary_key())
.col(ColumnDef::new(Gruppe::Name).string().not_null())
.to_owned(),
)
.await
}
async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {
manager
.drop_table(Table::drop().table(Gruppe::Table).to_owned())
.await
}
}
#[derive(Iden)]
#[iden(rename = "gruppen")]
pub enum Gruppe {
Table,
Id,
Name,
}

View File

@ -0,0 +1,34 @@
use sea_orm_migration::prelude::*;
#[derive(DeriveMigrationName)]
pub struct Migration;
#[async_trait::async_trait]
impl MigrationTrait for Migration {
async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
manager
.create_table(
Table::create()
.table(Rolle::Table)
.if_not_exists()
.col(ColumnDef::new(Rolle::Id).uuid().not_null().primary_key())
.col(ColumnDef::new(Rolle::Name).string().not_null())
.to_owned(),
)
.await
}
async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {
manager
.drop_table(Table::drop().table(Rolle::Table).to_owned())
.await
}
}
#[derive(Iden)]
#[iden(rename = "rollen")]
pub enum Rolle {
Table,
Id,
Name,
}

View File

@ -0,0 +1,48 @@
use sea_orm_migration::prelude::*;
#[derive(DeriveMigrationName)]
pub struct Migration;
#[async_trait::async_trait]
impl MigrationTrait for Migration {
async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
manager
.create_table(
Table::create()
.table(Benutzer::Table)
.if_not_exists()
.col(ColumnDef::new(Benutzer::Id).uuid().not_null().primary_key())
.col(ColumnDef::new(Benutzer::Nachname).string().not_null())
.col(ColumnDef::new(Benutzer::Vorname).string().not_null())
.col(ColumnDef::new(Benutzer::Kennung).string().not_null())
.col(ColumnDef::new(Benutzer::EMail).string().not_null())
.col(ColumnDef::new(Benutzer::Telefon).string().not_null())
.col(ColumnDef::new(Benutzer::RolleId).integer())
.col(ColumnDef::new(Benutzer::GruppenId).integer())
.col(ColumnDef::new(Benutzer::DienststelleId).integer())
.to_owned(),
)
.await
}
async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {
manager
.drop_table(Table::drop().table(Benutzer::Table).to_owned())
.await
}
}
#[derive(Iden)]
#[iden(rename = "benutzer")]
enum Benutzer {
Table,
Id,
Nachname,
Vorname,
Kennung,
EMail,
Telefon,
RolleId,
GruppenId,
DienststelleId,
}

View File

@ -0,0 +1,58 @@
use sea_orm_migration::prelude::*;
use crate::{m20240618_151728_create_gruppe::Gruppe, m20240618_151732_create_rolle::Rolle};
#[derive(DeriveMigrationName)]
pub struct Migration;
#[async_trait::async_trait]
impl MigrationTrait for Migration {
async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
manager
.create_table(
Table::create()
.table(RolleGruppe::Table)
.if_not_exists()
.primary_key(
Index::create()
.table(RolleGruppe::Table)
.col(RolleGruppe::RolleId)
.col(RolleGruppe::GruppeId),
)
.col(ColumnDef::new(RolleGruppe::RolleId).uuid().not_null())
.col(ColumnDef::new(RolleGruppe::GruppeId).uuid().not_null())
.foreign_key(
ForeignKey::create()
.name("fk_rolle")
.from(RolleGruppe::Table, RolleGruppe::RolleId)
.to(Rolle::Table, Rolle::Id)
.on_delete(ForeignKeyAction::Cascade)
.on_update(ForeignKeyAction::Cascade),
)
.foreign_key(
ForeignKey::create()
.name("fk_gruppe")
.from(RolleGruppe::Table, RolleGruppe::GruppeId)
.to(Gruppe::Table, Gruppe::Id)
.on_update(ForeignKeyAction::Cascade)
.on_delete(ForeignKeyAction::Cascade),
)
.to_owned(),
)
.await
}
async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {
manager
.drop_table(Table::drop().table(RolleGruppe::Table).to_owned())
.await
}
}
#[derive(Iden)]
#[iden(rename = "rollen_gruppen")]
enum RolleGruppe {
Table,
RolleId,
GruppeId,
}

View File

@ -0,0 +1,40 @@
use sea_orm_migration::prelude::*;
#[derive(DeriveMigrationName)]
pub struct Migration;
#[async_trait::async_trait]
impl MigrationTrait for Migration {
async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
manager
.create_table(
Table::create()
.table(Dienststelle::Table)
.if_not_exists()
.col(
ColumnDef::new(Dienststelle::Id)
.integer()
.not_null()
.auto_increment()
.primary_key(),
)
.col(ColumnDef::new(Dienststelle::Name).string().not_null())
.to_owned(),
)
.await
}
async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {
manager
.drop_table(Table::drop().table(Dienststelle::Table).to_owned())
.await
}
}
#[derive(Iden)]
#[iden(rename = "dienststellen")]
enum Dienststelle {
Table,
Id,
Name,
}

23
src/entities/benutzer.rs Normal file
View File

@ -0,0 +1,23 @@
//! `SeaORM` Entity. Generated by sea-orm-codegen 0.12.15
use sea_orm::entity::prelude::*;
#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
#[sea_orm(table_name = "benutzer")]
pub struct Model {
#[sea_orm(primary_key, auto_increment = false)]
pub id: Uuid,
pub nachname: String,
pub vorname: String,
pub kennung: String,
pub e_mail: String,
pub telefon: String,
pub rolle_id: Option<i32>,
pub gruppen_id: Option<i32>,
pub dienststelle_id: Option<i32>,
}
#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)]
pub enum Relation {}
impl ActiveModelBehavior for ActiveModel {}

34
src/entities/gruppen.rs Normal file
View File

@ -0,0 +1,34 @@
//! `SeaORM` Entity. Generated by sea-orm-codegen 0.12.15
use sea_orm::entity::prelude::*;
#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
#[sea_orm(table_name = "gruppen")]
pub struct Model {
#[sea_orm(primary_key, auto_increment = false)]
pub id: Uuid,
pub name: String,
}
#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)]
pub enum Relation {
#[sea_orm(has_many = "super::rollen_gruppen::Entity")]
RollenGruppen,
}
impl Related<super::rollen_gruppen::Entity> for Entity {
fn to() -> RelationDef {
Relation::RollenGruppen.def()
}
}
impl Related<super::rollen::Entity> for Entity {
fn to() -> RelationDef {
super::rollen_gruppen::Relation::Rollen.def()
}
fn via() -> Option<RelationDef> {
Some(super::rollen_gruppen::Relation::Gruppen.def().rev())
}
}
impl ActiveModelBehavior for ActiveModel {}

View File

@ -2,6 +2,10 @@
pub mod prelude;
pub mod benutzer;
pub mod gruppen;
pub mod hersteller;
pub mod modelle;
pub mod rollen;
pub mod rollen_gruppen;
pub mod typen;

View File

@ -1,5 +1,9 @@
//! `SeaORM` Entity. Generated by sea-orm-codegen 0.12.15
pub use super::benutzer::Entity as Benutzer;
pub use super::gruppen::Entity as Gruppen;
pub use super::hersteller::Entity as Hersteller;
pub use super::modelle::Entity as Modelle;
pub use super::rollen::Entity as Rollen;
pub use super::rollen_gruppen::Entity as RollenGruppen;
pub use super::typen::Entity as Typen;

34
src/entities/rollen.rs Normal file
View File

@ -0,0 +1,34 @@
//! `SeaORM` Entity. Generated by sea-orm-codegen 0.12.15
use sea_orm::entity::prelude::*;
#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
#[sea_orm(table_name = "rollen")]
pub struct Model {
#[sea_orm(primary_key, auto_increment = false)]
pub id: Uuid,
pub name: String,
}
#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)]
pub enum Relation {
#[sea_orm(has_many = "super::rollen_gruppen::Entity")]
RollenGruppen,
}
impl Related<super::rollen_gruppen::Entity> for Entity {
fn to() -> RelationDef {
Relation::RollenGruppen.def()
}
}
impl Related<super::gruppen::Entity> for Entity {
fn to() -> RelationDef {
super::rollen_gruppen::Relation::Gruppen.def()
}
fn via() -> Option<RelationDef> {
Some(super::rollen_gruppen::Relation::Rollen.def().rev())
}
}
impl ActiveModelBehavior for ActiveModel {}

View File

@ -0,0 +1,46 @@
//! `SeaORM` Entity. Generated by sea-orm-codegen 0.12.15
use sea_orm::entity::prelude::*;
#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
#[sea_orm(table_name = "rollen_gruppen")]
pub struct Model {
#[sea_orm(primary_key, auto_increment = false)]
pub rolle_id: Uuid,
#[sea_orm(primary_key, auto_increment = false)]
pub gruppe_id: Uuid,
}
#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)]
pub enum Relation {
#[sea_orm(
belongs_to = "super::gruppen::Entity",
from = "Column::GruppeId",
to = "super::gruppen::Column::Id",
on_update = "Cascade",
on_delete = "Cascade"
)]
Gruppen,
#[sea_orm(
belongs_to = "super::rollen::Entity",
from = "Column::RolleId",
to = "super::rollen::Column::Id",
on_update = "Cascade",
on_delete = "Cascade"
)]
Rollen,
}
impl Related<super::gruppen::Entity> for Entity {
fn to() -> RelationDef {
Relation::Gruppen.def()
}
}
impl Related<super::rollen::Entity> for Entity {
fn to() -> RelationDef {
Relation::Rollen.def()
}
}
impl ActiveModelBehavior for ActiveModel {}

View File

@ -1,5 +1,5 @@
mod entities;
use entities::{prelude::*, *};
use entities::{gruppen, prelude::*, rollen};
use futures::executor::block_on;
// use sea_orm::{ConnectionTrait, Database, DbBackend, DbErr, Statement};
use sea_orm::*;
@ -24,13 +24,23 @@ async fn run() -> Result<(), DbErr> {
let url = format!("{}/{}", DATABASE_URL, DB_NAME);
let db = Database::connect(&url).await?;
let alle_benutzer = Benutzer::find().into_json().all(&db).await?;
let alle_rollen_gruppen = RollenGruppen::find().into_json().all(&db).await?;
let alle_typen = Typen::find().into_json().all(&db).await?;
let alle_hersteller = Hersteller::find().into_json().all(&db).await?;
let alle_modelle = Modelle::find().into_json().all(&db).await?;
println!("{:?}", alle_benutzer);
println!("{:?}", alle_rollen_gruppen);
println!("{:?}", alle_typen);
println!("{:?}", alle_hersteller);
println!("{:?}", alle_modelle);
let alle_rollen: Vec<(rollen::Model, Vec<gruppen::Model>)> =
Rollen::find().find_with_related(Gruppen).all(&db).await?;
println!("{:#?}", alle_rollen);
Ok(())
}