mirror of
https://gitee.com/nocobase/nocobase.git
synced 2025-05-07 14:39:25 +08:00
fix: quote table name in mysql query interface (#5065)
* fix: quote table name when get mysql table define * chore: test --------- Co-authored-by: SuperGoo <gu.zhichao@nint.com>
This commit is contained in:
parent
9dd2505ae3
commit
453ba9cba8
@ -9,6 +9,43 @@
|
||||
|
||||
import { Database, mockDatabase } from '@nocobase/database';
|
||||
|
||||
describe.runIf(process.env.DB_DIALECT === 'mysql')('mysql', async () => {
|
||||
let db: Database;
|
||||
|
||||
beforeEach(async () => {
|
||||
db = mockDatabase({
|
||||
logging: console.log,
|
||||
});
|
||||
|
||||
await db.clean({ drop: true });
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
await db.close();
|
||||
});
|
||||
|
||||
it('should show table def table name has reserved word', async () => {
|
||||
const User = db.collection({
|
||||
name: 'users',
|
||||
tableName: `interval`,
|
||||
fields: [
|
||||
{
|
||||
type: 'string',
|
||||
name: 'name',
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
await db.sync();
|
||||
|
||||
const tableDef = await db.queryInterface.showTableDefinition({
|
||||
tableName: User.options.tableName,
|
||||
});
|
||||
|
||||
expect(tableDef).toBeDefined();
|
||||
});
|
||||
});
|
||||
|
||||
describe('query interface', async () => {
|
||||
let db: Database;
|
||||
|
||||
|
@ -91,7 +91,7 @@ export default class MysqlQueryInterface extends QueryInterface {
|
||||
async showTableDefinition(tableInfo: TableInfo): Promise<any> {
|
||||
const { tableName } = tableInfo;
|
||||
|
||||
const sql = `SHOW CREATE TABLE ${tableName}`;
|
||||
const sql = `SHOW CREATE TABLE ${this.db.utils.quoteTable(tableName)}`;
|
||||
|
||||
const results = await this.db.sequelize.query(sql, { type: 'SELECT' });
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user