19 lines
831 B
JavaScript
19 lines
831 B
JavaScript
import { querySchemaRows } from "./run-schema-query";
|
|
import schemaCondition from "./schema-condition";
|
|
export default async function getTableColumns({ tableName, config, }) {
|
|
const schemaCond = schemaCondition(config);
|
|
const rows = await querySchemaRows({
|
|
query: `SELECT COLUMN_NAME, COLUMN_TYPE, COLUMN_COMMENT, IS_NULLABLE, COLUMN_DEFAULT, EXTRA FROM information_schema.COLUMNS WHERE ${schemaCond.where} AND TABLE_NAME = ? ORDER BY ORDINAL_POSITION`,
|
|
values: [...schemaCond.values, tableName],
|
|
config,
|
|
});
|
|
return rows.map((row) => ({
|
|
name: row.COLUMN_NAME,
|
|
type: row.COLUMN_TYPE,
|
|
comment: row.COLUMN_COMMENT,
|
|
isNullable: String(row.IS_NULLABLE).toUpperCase() === "YES",
|
|
columnDefault: row.COLUMN_DEFAULT,
|
|
extra: row.EXTRA || "",
|
|
}));
|
|
}
|