Мое требование состоит в том, чтобы не определять/изменять определение таблицы из Sequelize. Так я и не звонил await sequelize.sync();
Однако проблема в том, что Sequelize не распознает таблицы и вместо этого запускает запрос с двойными кавычками. Я скопировал тот же запрос из консоли в pgadmin, и он не работает с двойными кавычками, но когда они удалены, он работает. Я не уверен, нужно ли нам вносить какие-либо изменения в конфигурацию.
SELECT "id" AS "userId", "name" FROM "schema.table_name" AS "tableAlias" WHERE "tableAlias"."name"
Исключение:
[Nest] 22364 - 03/21/2022, 6:22:21 PM ERROR [ExceptionsHandler] relation "schema.table_name" does not exist
Определение модели:
@Table({
timestamps: false,
freezeTableName: true,
tableName: "schema.table_name"
})
export class TableAlias extends Model<TableAlias>{
@PrimaryKey
@Column({
field: 'id'
})
userId: number;
@Column({field: 'name'})
name: number;
}
Не следует указывать имя таблицы вместе со схемой. Укажите это отдельно в опции schema
:
@Table({
timestamps: false,
freezeTableName: true,
tableName: "table_name",
schema: "schema"
})
export class TableAlias extends Model<TableAlias>{
@PrimaryKey
@Column({
field: 'id'
})
userId: number;
@Column({field: 'name'})
name: number;
}