Генерация модели с использованием секвелирования с диалектом MySQL - PullRequest
0 голосов
/ 11 января 2020

Запросы относительно генерации модели с использованием sequelize:

  1. Как обеспечить автоматическое увеличение пользовательского значения в sequelize с использованием MySQL.
  2. Как установить текущую метку времени для любого поля как тип данных. (Текущая реализация, показанная в запросе, не работает для меня!)
  3. Как установить ROW_FORMAT = COMPACT?
  4. Как настроить имя ограничения в уникальном ключе или внешнем ключе?

Какие изменения необходимы? и в каком файле Модель ИЛИ Миграция.

Что я создал:

CREATE TABLE `tbltests` (
  `testId` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(250) DEFAULT NULL,
  `nameId` int(4) unsigned DEFAULT 0,
  `nameunique` varchar(100) NOT NULL,
  `status` tinyint(1) NOT NULL DEFAULT 0,
  `timet` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  `createdAt` datetime NOT NULL,
  `updatedAt` datetime NOT NULL,
  PRIMARY KEY (`testId`),
  UNIQUE KEY `nameunique` (`nameunique`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4

Что я хочу получить в качестве вывода:

 CREATE TABLE `tbltests` (
      `testId` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(250) DEFAULT NULL,
      `nameId` int(4) unsigned DEFAULT 0,
      `nameunique` varchar(100) NOT NULL,
      `status` tinyint(1) NOT NULL DEFAULT 0,
      `timet` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
      `createdAt` datetime NOT NULL,
      `updatedAt` datetime NOT NULL,
      PRIMARY KEY (`testId`),
      UNIQUE KEY `nameunique` (`nameunique`)
    ) ENGINE=InnoDB AUTO_INCREMENT=52 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT

1 Ответ

0 голосов
/ 16 января 2020

Решения относительно генерации модели с использованием sequelize:

Как обеспечить автоматическое увеличение пользовательского значения в sequelize с использованием MySQL?

Как показано в CreateTable запрос в заданном вопросе, AUTO_INCREMENT просто ссылается на собственное количество записей, т. Е. Если у нас есть 2 записи, оператор запроса покажет это как AUTO_INCREMENT = 2

Как настроить имя ограничения в уникальном ключе или внешнем ключе?

Используя функцию addConstraint () , мы можем добавить ограничения для внешнего ключа и уникального ключа, а также с помощью имени настраиваемого ограничения. Показанный фрагмент для внешнего ключа:

return queryInterface.addConstraint(
'Tabletests',
['GeneratedBy'],
  {
    type: 'foreign key',
    name: 'GeneratedBy_FK_1',
    references: {
      table: 'TableUsers',
      field: 'Uid'
    },
    onUpdate: 'cascade',
  }
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...