Skip to content

Commit

Permalink
CLI: generate has_one relation for foreign key of unique index / co…
Browse files Browse the repository at this point in the history
…nstraint (#2254)

* CLI: generate `has_one` relation for foreign key of unique index / constraint

* Primary key column is unique

* Bump dependency

* Fix
  • Loading branch information
billy1624 authored Jun 19, 2024
1 parent b4506c0 commit bca933a
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 1 deletion.
5 changes: 4 additions & 1 deletion sea-orm-cli/src/commands/generate.rs
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,10 @@ pub async fn run_generate_command(
sqlx_connect::<Sqlite>(max_connections, url.as_str(), None).await?;
println!("Discovering schema ...");
let schema_discovery = SchemaDiscovery::new(connection);
let schema = schema_discovery.discover().await?;
let schema = schema_discovery
.discover()
.await?
.merge_indexes_into_table();
let table_stmts = schema
.tables
.into_iter()
Expand Down
11 changes: 11 additions & 0 deletions sea-orm-codegen/src/entity/transformer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,17 @@ impl EntityTransformer {
break;
}
}
if rel.columns.len() == entity.primary_keys.len() {
let mut count_pk = 0;
for primary_key in entity.primary_keys.iter() {
if rel.columns.contains(&primary_key.name) {
count_pk += 1;
}
}
if count_pk == entity.primary_keys.len() {
unique = true;
}
}
let rel_type = if unique {
RelationType::HasOne
} else {
Expand Down

0 comments on commit bca933a

Please sign in to comment.