one more test
This commit is contained in:
parent
24fe4cf48c
commit
102ff614f6
@ -516,8 +516,8 @@ function applyNamingStrategy(
|
||||
oldName
|
||||
);
|
||||
entity.indices.forEach(index => {
|
||||
index.columns.map(column2 =>
|
||||
column2 === column.tscName ? newName : column2
|
||||
index.columns = index.columns.map(column2 =>
|
||||
column2 === oldName ? newName : column2
|
||||
);
|
||||
});
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
import AbstractNamingStrategy from "./AbstractNamingStrategy";
|
||||
import { Relation } from "./models/Relation";
|
||||
import { Entity } from "./models/Entity";
|
||||
import { findNameForNewField } from "./Utils";
|
||||
|
||||
import changeCase = require("change-case");
|
||||
|
||||
@ -8,10 +9,13 @@ import changeCase = require("change-case");
|
||||
export default class NamingStrategy extends AbstractNamingStrategy {
|
||||
public relationName(relation: Relation, owner: Entity): string {
|
||||
const columnOldName = relation.fieldName;
|
||||
|
||||
const isRelationToMany =
|
||||
relation.relationType === "OneToMany" ||
|
||||
relation.relationType === "ManyToMany";
|
||||
let columnName = changeCase.camelCase(columnOldName);
|
||||
let columnName = changeCase.camelCase(
|
||||
columnOldName.replace(/[0-9]$/, "")
|
||||
);
|
||||
|
||||
if (
|
||||
columnName.toLowerCase().endsWith("id") &&
|
||||
@ -34,25 +38,7 @@ export default class NamingStrategy extends AbstractNamingStrategy {
|
||||
relation.relationType !== "ManyToMany" &&
|
||||
columnOldName !== columnName
|
||||
) {
|
||||
if (owner.columns.some(v => v.tscName === columnName)) {
|
||||
columnName += "_";
|
||||
for (let i = 2; i <= owner.columns.length; i++) {
|
||||
columnName =
|
||||
columnName.substring(
|
||||
0,
|
||||
columnName.length - i.toString().length
|
||||
) + i.toString();
|
||||
if (
|
||||
owner.columns.every(
|
||||
v =>
|
||||
v.tscName !== columnName ||
|
||||
columnName === columnOldName
|
||||
)
|
||||
) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
columnName = findNameForNewField(columnName, owner, columnOldName);
|
||||
}
|
||||
|
||||
return columnName;
|
||||
|
11
src/Utils.ts
11
src/Utils.ts
@ -32,9 +32,14 @@ export function findNameForNewField(
|
||||
) {
|
||||
let fieldName = _fieldName;
|
||||
const validNameCondition = () =>
|
||||
(entity.columns.every(v => v.tscName !== fieldName) &&
|
||||
entity.relations.every(v => v.fieldName !== fieldName)) ||
|
||||
(columnOldName && columnOldName === fieldName);
|
||||
(entity.columns.every(
|
||||
v => v.tscName.toLowerCase() !== fieldName.toLowerCase()
|
||||
) &&
|
||||
entity.relations.every(
|
||||
v => v.fieldName.toLowerCase() !== fieldName.toLowerCase()
|
||||
)) ||
|
||||
(columnOldName &&
|
||||
columnOldName.toLowerCase() === fieldName.toLowerCase());
|
||||
if (!validNameCondition()) {
|
||||
fieldName += "_";
|
||||
for (
|
||||
|
@ -1,5 +1,5 @@
|
||||
{{#*inline "Index"}}
|
||||
@Index("{{name}}",[{{#columns}}"{{.}}",{{/columns~}}],{ {{json options}} })
|
||||
@Index("{{name}}",[{{#columns}}"{{toPropertyName .}}",{{/columns~}}],{ {{json options}} })
|
||||
{{/inline}}
|
||||
{{#*inline "Import"}}
|
||||
import { {{toEntityName .}} } from './{{toFileName .}}'
|
||||
|
@ -18,26 +18,29 @@ import { quests } from "./quests";
|
||||
@Index("feedExtraInfo_ReaderId_idx", ["readerId"], { unique: true })
|
||||
@Index("feedExtraInfo_QuestId_idx", ["questId"], { unique: true })
|
||||
export class feedextrainfo {
|
||||
@OneToOne(type => users, FeedOwnerId => FeedOwnerId.feedextrainfo, {
|
||||
primary: true
|
||||
})
|
||||
@PrimaryColumn({ name: "FeedOwnerId" })
|
||||
feedOwnerId: number;
|
||||
|
||||
@PrimaryColumn({ name: "QuestId" })
|
||||
questId: number;
|
||||
|
||||
@PrimaryColumn({ name: "ReaderId" })
|
||||
readerId: number;
|
||||
|
||||
@OneToOne(type => users, FeedOwnerId => FeedOwnerId.feedextrainfo)
|
||||
@JoinColumn({ name: "FeedOwnerId" })
|
||||
feedOwnerId: users;
|
||||
feedOwner: users;
|
||||
|
||||
@OneToOne(type => quests, QuestId => QuestId.feedextrainfo, {
|
||||
primary: true
|
||||
})
|
||||
@OneToOne(type => quests, QuestId => QuestId.feedextrainfo)
|
||||
@JoinColumn({ name: "QuestId" })
|
||||
questId: quests;
|
||||
quest: quests;
|
||||
|
||||
@OneToOne(type => users, ReaderId => ReaderId.feedextrainfo2, {
|
||||
primary: true
|
||||
})
|
||||
@OneToOne(type => users, ReaderId => ReaderId.feedextrainfo2)
|
||||
@JoinColumn({ name: "ReaderId" })
|
||||
readerId: users;
|
||||
reader: users;
|
||||
|
||||
@Column("int", {
|
||||
name: "MostUpdatedFeedEntryIdUserRead"
|
||||
})
|
||||
MostUpdatedFeedEntryIdUserRead: number;
|
||||
mostUpdatedFeedEntryIdUserRead: number;
|
||||
}
|
||||
|
@ -18,8 +18,8 @@ export class quests {
|
||||
primary: true,
|
||||
name: "QuestId"
|
||||
})
|
||||
QuestId: number;
|
||||
questId: number;
|
||||
|
||||
@OneToOne(type => feedextrainfo, feedextrainfo => feedextrainfo.questId)
|
||||
@OneToOne(type => feedextrainfo, feedextrainfo => feedextrainfo.quest)
|
||||
feedextrainfo: feedextrainfo;
|
||||
}
|
||||
|
@ -18,11 +18,11 @@ export class users {
|
||||
primary: true,
|
||||
name: "UserId"
|
||||
})
|
||||
UserId: number;
|
||||
userId: number;
|
||||
|
||||
@OneToOne(type => feedextrainfo, feedextrainfo => feedextrainfo.feedOwnerId)
|
||||
@OneToOne(type => feedextrainfo, feedextrainfo => feedextrainfo.feedOwner)
|
||||
feedextrainfo: feedextrainfo;
|
||||
|
||||
@OneToOne(type => feedextrainfo, feedextrainfo2 => feedextrainfo2.readerId)
|
||||
@OneToOne(type => feedextrainfo, feedextrainfo2 => feedextrainfo2.reader)
|
||||
feedextrainfo2: feedextrainfo;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user