شخصی سازی شروع فیلد primaryKey و autoIncrement و افزایش سفارشی بوسیله ی migration   های sequelizeJS

پرسیده شده
فعالیت 1349 روز پیش
دیده شده 421 بار
0

سلام 
کد زیر یک migration برای sequelizeJS هستش که با دستور  npx sequelize-cli db:migrate  اجرا میشه
من می خوام مقدار usr_id که primaryKey و autoIncrement  هستش از 1000 شروع بشه و هر رکوردی که اضافه میشه مقدار 2 تا 2 تا بره جلو مثلا رکورد اول 100 , دوم 1002 و سوم 1004 
میشه بصورت دستی query در محیط mysql زد من می خوام بوسیله migration  انجام بشه.

module.exports = {
  up: (queryInterface, Sequelize) => {
    return queryInterface.createTable("users", {
      usr_id: {
        type: Sequelize.INTEGER.UNSIGNED,
        field: "usr_id",
        autoIncrement: true,
        primaryKey: true,
        allowNull: false,
      },
      usr_mobile: {
        type: Sequelize.STRING(13),
        field: "usr_mobile",
        allowNull: false,
      },
      usr_login_code: {
        type: Sequelize.STRING(6),
        field: "usr_login_code",
        allowNull: false,
      },
      usr_last_login_at: {
        type: Sequelize.DATE,
        field: "usr_last_login_at",
        allowNull: true,
      },
      usr_created_at: {
        type: Sequelize.DATE,
        field: "usr_created_at",
        allowNull: false,
      },
      usr_updated_at: {
        type: Sequelize.DATE,
        field: "usr_updated_at",
        allowNull: true,
      },
      usr_deleted_at: {
        type: Sequelize.DATE,
        field: "usr_deleted_at",
        allowNull: true,
      },
    });
  },
  down: (queryInterface, Sequelize) => {
    return queryInterface.dropTable("users");
  },
};
 

 

فایل پیوست

محسن محمدخانی
محسن محمدخانی

29 مرداد 99

0
حذف شده

سلام. برای پیاده سازی این فکر می کنم باید از کوئری های مجزا بعد از Migration استفاده کنید.

module.exports = {
  up: function (migration, DataTypes) {
    migration.migrator.sequelize.query('ALTER TABLE my_table ADD PRIMARY KEY(id)');
  }
}

و اینکه تعداد افزایش ها هم 2 تایی باشه باید از SQL کمک بگیرد و این دستور رو اجرا کنید.

SET GLOBAL auto_increment_increment=1;

این دستور تمامی auto increment ها تحت تاثیر قرار میده.

فایل پیوست

کیوان علی محمدی

توسط

کیوان علی محمدی

2 شهریور 99