Fields
When Platformatic DB inspects a database's schema, it creates an object for each table that contains a mapping of their fields.
These objects contain the following properties:
- singularName: singular entity name, based on table name. Uses inflected under the hood.
- pluralName: plural entity name (i.e- 'pages')
- primaryKey: the field which is identified as primary key.
- table: original table name
- fields: an object containing all fields details. Object key is the field name.
- camelCasedFields: an object containing all fields details in camelcase. If you have a column named- user_idyou can access it using both- userIdor- user_id
Fields detail
- sqlType: The original field type. It may vary depending on the underlying DB Engine
- isNullable: Whether the field can be- nullor not
- primaryKey: Whether the field is the primary key or not
- camelcase: The camel cased value of the field
Example
Given this SQL Schema (for PostgreSQL):
CREATE SEQUENCE IF NOT EXISTS pages_id_seq;
CREATE TABLE "public"."pages" (
    "id" int4 NOT NULL DEFAULT nextval('pages_id_seq'::regclass),
    "title" varchar,
    "body_content" text,
    "category_id" int4,
    PRIMARY KEY ("id")
);
The resulting mapping object will be:
{
  singularName: 'page',
  pluralName: 'pages',
  primaryKey: 'id',
  table: 'pages',
  fields: {
    id: {
      sqlType: 'int4',
      isNullable: false,
      primaryKey: true,
      camelcase: 'id'
    },
    title: {
      sqlType: 'varchar',
      isNullable: true,
      camelcase: 'title'
    },
    body_content: {
      sqlType: 'text',
      isNullable: true,
      camelcase: 'bodyContent'
    },
    category_id: {
      sqlType: 'int4',
      isNullable: true,
      foreignKey: true,
      camelcase: 'categoryId'
    }
  }
  camelCasedFields: {
    id: {
      sqlType: 'int4',
      isNullable: false,
      primaryKey: true,
      camelcase: 'id'
    },
    title: {
      sqlType: 'varchar',
      isNullable: true,
      camelcase: 'title'
    },
    bodyContent: {
      sqlType: 'text',
      isNullable: true,
      camelcase: 'bodyContent'
    },
    categoryId: {
      sqlType: 'int4',
      isNullable: true,
      foreignKey: true,
      camelcase: 'categoryId'
    }
  },
  relations: []
}