Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

cách đặt độ dài kiểu dữ liệu mysql với phần tiếp theo-cli

Hiện tại không có tùy chọn để tạo mô hình với các thuộc tính chi tiết. Bạn có thể kiểm tra mã chịu trách nhiệm tại đây. Nó là mã khá rõ ràng. Dễ hiểu.

Tôi thường chỉ tạo nó với tên và không có trường, sau đó sao chép, dán mô hình của tôi vào tệp đã tạo.

Đây là mô hình.

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 });

Tôi chạy sequelize-cli model:generate --name MyModel và sao chép, dán tất cả đối tượng tham số init trực tiếp bên trong tệp được tạo. Như thế này:

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]
            }
        }
    }
);

Tất nhiên, chúng tôi không cần xác thực ở đây và chúng tôi cũng cần một số trường bổ sung như Id và khóa ngoại nếu có một đến nhiều liên kết. Đừng quên thêm updatedAt và createAt nếu bạn cho phép phần tiếp theo thêm nó vào phiên bản mô hình của bạn.

Vì vậy, hãy xóa xác thực và thêm những người khác.

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'
        }
    }
);

Đó là cách tôi quản lý để tạo di chuyển từ các mô hình của mình. Thật không may, cli phần tiếp theo không có bất kỳ tùy chọn chi tiết nào cho lệnh tạo. Nhưng vui lòng thêm một số! Kéo nó từ github và làm việc trên nó. Rất vui nếu có. Bạn cũng có thể tự động hóa quy trình được mô tả này và thêm nó dưới dạng một lệnh khác để tiếp theo 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. Nhập GeoLite2 của MaxMind vào MySQL

  2. Truy vấn Mysql để xác định xem ngày giờ đã cho có được bao gồm trong khoảng ngày giờ hay không

  3. Hibernate gửi truy vấn người nước ngoài đến cơ sở dữ liệu

  4. Tôi có thể đặt WHERE col LIKE '%' chọn giá trị NULL không?

  5. JDBC:khóa ngoại trên PK được tạo trong cùng một giao dịch