Fix various bugs before 0.2.2 (#3118)
* Fix various bugs before 0.2.2 release * Additional fixes * More fixes * Fixes
This commit is contained in:
@ -63,11 +63,13 @@ export class WorkspaceMigrationRunnerService {
|
||||
}, []);
|
||||
|
||||
const queryRunner = workspaceDataSource?.createQueryRunner();
|
||||
const schemaName =
|
||||
this.workspaceDataSourceService.getSchemaName(workspaceId);
|
||||
|
||||
// Loop over each migration and create or update the table
|
||||
// TODO: Should be done in a transaction
|
||||
for (const migration of flattenedPendingMigrations) {
|
||||
await this.handleTableChanges(queryRunner, migration);
|
||||
await this.handleTableChanges(queryRunner, schemaName, migration);
|
||||
}
|
||||
|
||||
// Update appliedAt date for each migration
|
||||
@ -96,20 +98,17 @@ export class WorkspaceMigrationRunnerService {
|
||||
*/
|
||||
private async handleTableChanges(
|
||||
queryRunner: QueryRunner,
|
||||
schemaName: string,
|
||||
tableMigration: WorkspaceMigrationTableAction,
|
||||
) {
|
||||
switch (tableMigration.action) {
|
||||
case 'create':
|
||||
await this.createTable(
|
||||
queryRunner,
|
||||
tableMigration.schemaName,
|
||||
tableMigration.name,
|
||||
);
|
||||
await this.createTable(queryRunner, schemaName, tableMigration.name);
|
||||
break;
|
||||
case 'alter':
|
||||
await this.handleColumnChanges(
|
||||
queryRunner,
|
||||
tableMigration.schemaName,
|
||||
schemaName,
|
||||
tableMigration.name,
|
||||
tableMigration?.columns,
|
||||
);
|
||||
@ -293,7 +292,6 @@ export class WorkspaceMigrationRunnerService {
|
||||
new TableForeignKey({
|
||||
columnNames: [migrationColumn.columnName],
|
||||
referencedColumnNames: [migrationColumn.referencedTableColumnName],
|
||||
referencedSchema: migrationColumn.referencedSchema,
|
||||
referencedTableName: migrationColumn.referencedTableName,
|
||||
onDelete: 'CASCADE',
|
||||
}),
|
||||
|
||||
@ -92,8 +92,8 @@ export class CompanyObjectMetadata extends BaseObjectMetadata {
|
||||
description:
|
||||
'Ideal Customer Profile: Indicates whether the company is the most suitable and valuable customer for you',
|
||||
icon: 'IconTarget',
|
||||
defaultValue: { value: false },
|
||||
})
|
||||
@IsNullable()
|
||||
idealCustomerProfile: boolean;
|
||||
|
||||
// Relations
|
||||
|
||||
@ -393,7 +393,6 @@ export class WorkspaceSyncMetadataService {
|
||||
{
|
||||
name: object.targetTableName,
|
||||
action: 'create',
|
||||
schemaName: object.dataSource.schema,
|
||||
} satisfies WorkspaceMigrationTableAction,
|
||||
...Object.values(object.fields)
|
||||
.filter((field) => field.type !== FieldMetadataType.RELATION)
|
||||
@ -402,7 +401,6 @@ export class WorkspaceSyncMetadataService {
|
||||
({
|
||||
name: object.targetTableName,
|
||||
action: 'alter',
|
||||
schemaName: object.dataSource.schema,
|
||||
columns: this.workspaceMigrationFactory.createColumnActions(
|
||||
WorkspaceMigrationColumnActionType.CREATE,
|
||||
field,
|
||||
@ -434,8 +432,6 @@ export class WorkspaceSyncMetadataService {
|
||||
{
|
||||
name: objectsInDbById[field.objectMetadataId].targetTableName,
|
||||
action: 'alter',
|
||||
schemaName:
|
||||
objectsInDbById[field.objectMetadataId].dataSource.schema,
|
||||
columns: this.workspaceMigrationFactory.createColumnActions(
|
||||
WorkspaceMigrationColumnActionType.CREATE,
|
||||
field,
|
||||
@ -457,8 +453,6 @@ export class WorkspaceSyncMetadataService {
|
||||
{
|
||||
name: objectsInDbById[field.objectMetadataId].targetTableName,
|
||||
action: 'alter',
|
||||
schemaName:
|
||||
objectsInDbById[field.objectMetadataId].dataSource.schema,
|
||||
columns: [
|
||||
{
|
||||
action: WorkspaceMigrationColumnActionType.DROP,
|
||||
@ -524,13 +518,11 @@ export class WorkspaceSyncMetadataService {
|
||||
{
|
||||
name: toObjectMetadata.targetTableName,
|
||||
action: 'alter',
|
||||
schemaName: toObjectMetadata.dataSource.schema,
|
||||
columns: [
|
||||
{
|
||||
action: WorkspaceMigrationColumnActionType.RELATION,
|
||||
columnName: `${camelCase(toFieldMetadata.name)}Id`,
|
||||
referencedTableName: fromObjectMetadata.targetTableName,
|
||||
referencedSchema: fromObjectMetadata.dataSource.schema,
|
||||
referencedTableColumnName: 'id',
|
||||
isUnique:
|
||||
relation.relationType === RelationMetadataType.ONE_TO_ONE,
|
||||
|
||||
Reference in New Issue
Block a user