Use migrations for remote tables (#4877)
Foreign tables should be created using migrations, as we do for standard tables. Since those are not really generated from the object metadata but from the remote table, those migrations won't live in the object metadata service. This PR: - creates new types of migration : create_foreign_table and drop_foreign_table - triggers those migrations rather than raw queries directly - moves the logic to fetch current foreign tables into the remote table service since this is not directly linked to postgres data wrapper - adds logic to unsync all tables before deleting --------- Co-authored-by: Thomas Trompette <thomast@twenty.com>
This commit is contained in:
@ -62,6 +62,13 @@ export type WorkspaceMigrationCreateComment = {
|
||||
comment: string;
|
||||
};
|
||||
|
||||
export type WorkspaceMigrationForeignTable = {
|
||||
columns: WorkspaceMigrationColumnDefinition[];
|
||||
referencedTableName: string;
|
||||
referencedTableSchema: string;
|
||||
foreignDataWrapperId: string;
|
||||
};
|
||||
|
||||
export type WorkspaceMigrationColumnAction = {
|
||||
action: WorkspaceMigrationColumnActionType;
|
||||
} & (
|
||||
@ -75,8 +82,14 @@ export type WorkspaceMigrationColumnAction = {
|
||||
|
||||
export type WorkspaceMigrationTableAction = {
|
||||
name: string;
|
||||
action: 'create' | 'alter' | 'drop';
|
||||
action:
|
||||
| 'create'
|
||||
| 'alter'
|
||||
| 'drop'
|
||||
| 'create_foreign_table'
|
||||
| 'drop_foreign_table';
|
||||
columns?: WorkspaceMigrationColumnAction[];
|
||||
foreignTable?: WorkspaceMigrationForeignTable;
|
||||
};
|
||||
|
||||
@Entity('workspaceMigration')
|
||||
|
||||
Reference in New Issue
Block a user