Added support for detached entities (#177)

Added support for detached entities
This commit is contained in:
Kononnable 2019-08-21 18:59:35 +02:00 committed by GitHub
commit 3682077b7e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 21 additions and 4 deletions

View File

@ -146,6 +146,10 @@ function addImportsAndGenerationOptions(
element.Imports.filter((elem, index, self) => {
return index === self.indexOf(elem);
});
if (generationOptions.skipSchema) {
element.Schema = undefined;
element.Database = undefined;
}
});
return dbModel;
}

View File

@ -21,4 +21,6 @@ export default class IGenerationOptions {
public customNamingStrategyPath: string = "";
public relationIds: boolean = false;
public skipSchema: boolean = false;
}

View File

@ -3,7 +3,7 @@ import {BaseEntity,Column,Entity,Index,JoinColumn,JoinTable,ManyToMany,ManyToOne
{{/each}}
@Entity("{{sqlEntityName}}"{{#Schema}},{schema:"{{.}}"{{#if ../Database}}, database:"{{../Database}}"{{/if}} } {{/Schema}})
@Entity("{{sqlEntityName}}"{{#Schema}} ,{schema:"{{.}}"{{#if ../Database}}, database:"{{../Database}}"{{/if}} } {{/Schema}})
{{#Indexes}}{{^isPrimaryKey}}@Index("{{name}}",[{{#columns}}"{{toPropertyName name}}",{{/columns}}]{{#isUnique}},{unique:true}{{/isUnique}})
{{/isPrimaryKey}}{{/Indexes}}export class {{toEntityName tsEntityName}}{{#IsActiveRecord}} extends BaseEntity{{/IsActiveRecord}} {
{{#Columns}}

View File

@ -153,6 +153,11 @@ function GetUtilParametersByArgs() {
default: false,
describe: "Generate RelationId fields"
})
.option("skipSchema", {
boolean: true,
default: false,
describe: "Omits schema identifier in generated entities"
})
.option("generateConstructor", {
boolean: true,
default: false,
@ -194,8 +199,8 @@ function GetUtilParametersByArgs() {
generationOptions.noConfigs = argv.noConfig;
generationOptions.propertyVisibility = argv.pv;
generationOptions.relationIds = argv.relationIds;
generationOptions.skipSchema = argv.skipSchema;
generationOptions.resultsPath = argv.o ? argv.o.toString() : null;
return { driver, connectionOptions, generationOptions };
}
@ -363,6 +368,10 @@ async function GetUtilParametersByInquirer() {
name: "Generate RelationId fields",
value: "relationId"
},
{
name: "Omits schema identifier in generated entities",
value: "skipSchema"
},
{
name:
"Generate constructor allowing partial initialization",
@ -396,6 +405,7 @@ async function GetUtilParametersByInquirer() {
"activeRecord"
);
generationOptions.relationIds = customizations.includes("relationId");
generationOptions.skipSchema = customizations.includes("skipSchema");
generationOptions.generateConstructor = customizations.includes(
"constructor"
);

View File

@ -14,13 +14,13 @@ export default class EntityInfo {
public Indexes: IndexInfo[];
public Schema: string;
public Schema?: string;
public GenerateConstructor: boolean;
public IsActiveRecord: boolean;
public Database: string;
public Database?: string;
public relationImports() {
const imports: string[] = [];

View File

@ -23,6 +23,7 @@ export function getGenerationOptions(resultsPath: string): IGenerationOptions {
generateConstructor: false,
customNamingStrategyPath: "",
relationIds: false,
skipSchema: false,
activeRecord: false
};
}