Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

cara mengatur panjang tipe tanggal mysql dengan sekuel-kli

Saat ini tidak ada pilihan untuk menghasilkan model dengan atribut rinci. Anda dapat memeriksa kode yang bertanggung jawab di sini. Ini adalah kode yang cukup jelas. Mudah dimengerti.

Saya biasanya hanya membuatnya dengan nama dan tanpa bidang lalu salin tempel model saya ke file yang dihasilkan.

Ini dia modelnya.

class MyModel extends Sequelize.Model { }
MyModel.init({
    name: {
        type: Sequelize.DataTypes.STRING(100),
        allowNull: false,
        validate: {
            notNull: true,
            notEmpty: true,
            len: [2, 100]
        }
    },
    description: {
        type: Sequelize.DataTypes.STRING(5000),
        allowNull: false,
        validate: {
            notNull: true,
            notEmpty: true,
            len: [100, 5000]
        }
    }
}, { sequelize: sequelizeInstance });

Saya menjalankan sequelize-cli model:generate --name MyModel dan salin tempel semua objek parameter init langsung di dalam file yang dihasilkan. Seperti ini:

queryInterface.createTable(
    'MyModel',
    {
        name: {
            type: Sequelize.DataTypes.STRING(100),
            allowNull: false,
            validate: {
                notNull: true,
                notEmpty: true,
                len: [2, 100]
            }
        },
        description: {
            type: Sequelize.DataTypes.STRING(5000),
            allowNull: false,
            validate: {
                notNull: true,
                notEmpty: true,
                len: [100, 5000]
            }
        }
    }
);

Tentu saja kami tidak memerlukan validasi di sini dan juga kami memerlukan beberapa bidang tambahan seperti Id dan kunci asing jika ada asosiasi satu ke banyak. Jangan lupa untuk menambahkan updatedAt dan CreatedAt jika Anda mengizinkan sekuel untuk menambahkannya ke instance model Anda.

Jadi hapus validasi dan tambahkan yang lain.

queryInterface.createTable(
    'MyModel',
    {
        id: {
            type: Sequelize.DataTypes.INTEGER,
            primaryKey: true,
            autoIncrement: true
        },
        name: {
            type: Sequelize.DataTypes.STRING(100),
            allowNull: false
        },
        description: {
            type: Sequelize.DataTypes.STRING(5000),
            allowNull: false
        },
        createdAt: {
            type: Sequelize.DataTypes.DATE,
            allowNull: false,
        },
        updatedAt: {
            type: Sequelize.DataTypes.DATE,
            allowNull: false,
        },
        MyOtherModelId: {
            type: Sequelize.DataTypes.INTEGER,
            allowNull: false,
            references: {
                model: 'MyOtherModel'
            },
            onUpdate: 'cascade',
            onDelete: 'restrict'
        }
    }
);

Begitulah cara saya membuat migrasi dari model saya. Sayangnya sekuel cli tidak memiliki opsi terperinci untuk menghasilkan perintah. Tapi jangan ragu untuk menambahkan beberapa! Tarik dari github dan kerjakan. Akan menyenangkan untuk memiliki. Anda juga dapat mengotomatiskan proses yang dijelaskan ini dan menambahkannya sebagai perintah lain untuk membuat sekuel cli.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bisakah saya membuat kolom tabel mysql tidak peka huruf besar-kecil?

  2. MySQL - membuat fungsi yang ditentukan pengguna untuk pengurutan khusus

  3. MySQL 8 membagi string dengan koma dan mengubahnya menjadi JSON ARRAY

  4. Bagaimana cara memilih ID baris mysql untuk klausa WHERE pada UPDATE, INSERT, DELETE melalui php?

  5. membuat halaman login dengan PHP