Feature/closure table custom naming#7120
Conversation
nebkat
left a comment
There was a problem hiding this comment.
Some minor comments there but overall nice change! Make sure you also follow the commit message guidelines. You can squash all of these commits into a single one called feat: Closure table custom naming.
| args: { | ||
| target: "", | ||
| name: parentClosureEntityMetadata.tableNameWithoutPrefix, | ||
| name: parentClosureEntityMetadata.treeOptions && parentClosureEntityMetadata.treeOptions.closureTableName ? parentClosureEntityMetadata.treeOptions.closureTableName : parentClosureEntityMetadata.tableNameWithoutPrefix, |
There was a problem hiding this comment.
This and the column names should probably be extracted to a variable since they are very long.
There was a problem hiding this comment.
This might not have been the intended change here, see also
typeorm/src/metadata/EntityMetadata.ts
Line 792 in c4a36da
There was a problem hiding this comment.
This and the column names should probably be extracted to a variable since they are very long.
Yes, looks very long. Very soon it will be shorten twice and looks good for reading.
parentClosureEntityMetadata?.treeOptions?.ancestorColumnName?.(primaryColumn) || primaryColumn.propertyName + "_ancestor"What do you think? Maybe we stay it as is to prevent rollback refactor into single command?
There was a problem hiding this comment.
This might not have been the intended change here, see also
typeorm/src/metadata/EntityMetadata.ts
Line 792 in c4a36da
I prefer to skip NamingStrategy transformation if closureTableName was set explicitly and use transformation if it was not. What do you think?
| import {Connection} from "../../../src/connection/Connection"; | ||
| import {closeTestingConnections, createTestingConnections, reloadTestingDatabases} from "../../utils/test-utils"; | ||
|
|
||
| describe.only("github issues > #7068", () => { |
There was a problem hiding this comment.
Probably excessive, to have a copy of all of the old tests.
Just try access the EntityMetadata from connection by filtering for one with the correct name as expected with your configration i.e. "category_xyz_closure". Then check it's columns property to have columns named "ancestor_xyz_" ...
There was a problem hiding this comment.
IMHO metadata checks doesn't cover real work. One time i saw SubjectExecutor ignores metadata naming. Maybe other parts of code do the same. Are you shure it's good idea to reduce tests?
alexey2baranov
left a comment
There was a problem hiding this comment.
You can squash all of these commits into a single one called
feat: Closure table custom naming.
Yes! I would like to do this. How can I do this?
| args: { | ||
| target: "", | ||
| name: parentClosureEntityMetadata.tableNameWithoutPrefix, | ||
| name: parentClosureEntityMetadata.treeOptions && parentClosureEntityMetadata.treeOptions.closureTableName ? parentClosureEntityMetadata.treeOptions.closureTableName : parentClosureEntityMetadata.tableNameWithoutPrefix, |
There was a problem hiding this comment.
This and the column names should probably be extracted to a variable since they are very long.
Yes, looks very long. Very soon it will be shorten twice and looks good for reading.
parentClosureEntityMetadata?.treeOptions?.ancestorColumnName?.(primaryColumn) || primaryColumn.propertyName + "_ancestor"What do you think? Maybe we stay it as is to prevent rollback refactor into single command?
| args: { | ||
| target: "", | ||
| name: parentClosureEntityMetadata.tableNameWithoutPrefix, | ||
| name: parentClosureEntityMetadata.treeOptions && parentClosureEntityMetadata.treeOptions.closureTableName ? parentClosureEntityMetadata.treeOptions.closureTableName : parentClosureEntityMetadata.tableNameWithoutPrefix, |
There was a problem hiding this comment.
This might not have been the intended change here, see also
typeorm/src/metadata/EntityMetadata.ts
Line 792 in c4a36da
I prefer to skip NamingStrategy transformation if closureTableName was set explicitly and use transformation if it was not. What do you think?
|
I think this PR can be merged. Thank you for contributions! |
* typeorm-0.2.30: (212 commits) version bump docs: fix javascript usage examples (typeorm#7031) fix: resolve migration for UpdateDateColumn without ON UPDATE clause (typeorm#7057) fix: Error when sorting by an embedded entity while using join and skip/take (typeorm#7082) fix: resolves Postgres sequence identifier length error (typeorm#7115) feat: closure table custom naming (typeorm#7120) feat: relations: Orphaned row action (typeorm#7105) docs: fix invalid code block in "find many options" (typeorm#7268) docs: Embodying the example (typeorm#7116) docs: document withDeleted option (typeorm#7132) fix: return 'null' (instead of 'undefined') on lazy relations that have no results (typeorm#7146) (typeorm#7147) docs: update cascade options (typeorm#7140) docs: add .ts to supported ormconfig formats (typeorm#7139) fix: improve stack traces when using persist executor (typeorm#7218) refactor: remove Oracle multirow insert workaround (since typeorm#6927) (typeorm#7083) feat: add NOWAIT and SKIP LOCKED lock support for MySQL (typeorm#7236) docs: update OneToMany grammar (typeorm#7252) feat: JavaScript file migrations output (typeorm#7253) docs: update Repository.ts (typeorm#7254) chore: update dependency cli-highlight to v2.1.10 (typeorm#7265) ...
Description of change
This PR Implements custom naming for closure-table tree.
Closes feature request #7068
Pull-Request Checklist
masterbranchnpm run lintpasses with this changenpm run testpasses with this changeFixes #0000