Уведомление о переводе ИИ

Эта документация была автоматически переведена ИИ.

Коллекции

В разработке плагинов NocoBase коллекция (таблица данных) — одно из ключевых понятий. Вы можете добавлять или изменять структуру таблиц данных в плагинах, определяя или расширяя коллекции. В отличие от таблиц данных, созданных через интерфейс управления источниками данных, коллекции, определенные в коде, обычно являются системными метатаблицами и не отображаются в списке управления источниками данных.

Определение таблиц данных

Согласно согласованной структуре каталогов, файлы коллекций размещаются в директории ./src/server/collections. Используйте defineCollection() для создания новых таблиц и extendCollection() для расширения существующих.

import { defineCollection } from '@nocobase/database';

export default defineCollection({
  name: 'articles',
  title: '示例文章',
  fields: [
    { type: 'string', name: 'title', interface: 'input', uiSchema: { title: '标题', required: true } },
    { type: 'text', name: 'content', interface: 'textarea', uiSchema: { title: '正文' } },
    {
      type: 'belongsTo',
      name: 'author',
      target: 'users',
      foreignKey: 'authorId',
      interface: 'recordPicker',
      uiSchema: { title: '作者' },
    },
  ],
});

В примере выше:

  • name: Имя таблицы (в базе данных автоматически создается таблица с таким же именем).
  • title: Отображаемое имя таблицы в интерфейсе.
  • fields: Коллекция полей, каждое поле содержит атрибуты, такие как type, name и другие.

Когда вам нужно добавить поля или изменить конфигурации для коллекций других плагинов, вы можете использовать extendCollection():

import { extendCollection } from '@nocobase/database';

export default extendCollection({
  name: 'articles',
  fields: [
    {
      type: 'boolean',
      name: 'isPublished',
      defaultValue: false,
    },
  ],
});

После активации плагина система автоматически добавит поле isPublished в существующую таблицу articles.

Tip

Согласованная структура каталогов загружается до выполнения методов load() всех плагинов, что позволяет избежать проблем с зависимостями, вызванных неполной загрузкой таблиц данных.

Синхронизация структуры базы данных

При первой активации плагина система автоматически синхронизирует конфигурации коллекций со структурой базы данных. Если плагин уже установлен и работает, после добавления или изменения коллекций вам нужно вручную выполнить команду обновления:

yarn nocobase upgrade

Если во время синхронизации возникают исключения или некорректные данные, вы можете перестроить структуру таблицы, переустановив приложение:

yarn nocobase install -f

Автоматическая генерация ресурсов (Resource)

После определения коллекции система автоматически генерирует для нее соответствующий ресурс, и вы можете напрямую выполнять операции CRUD над ним через API. Подробнее см. Управление ресурсами.