@grouparoo/core
Version:
The Grouparoo Core
68 lines (55 loc) • 1.35 kB
text/typescript
import Sequelize from "sequelize";
export default {
up: async (
queryInterface: Sequelize.QueryInterface,
DataTypes: typeof Sequelize
) => {
await queryInterface.createTable("schedules", {
guid: {
type: DataTypes.STRING(40),
primaryKey: true,
},
createdAt: {
type: DataTypes.DATE,
allowNull: false,
},
updatedAt: {
type: DataTypes.DATE,
allowNull: false,
},
sourceGuid: {
type: DataTypes.STRING(40),
allowNull: false,
},
name: {
type: DataTypes.STRING(191),
allowNull: false,
},
state: {
type: DataTypes.STRING(191),
allowNull: false,
},
recurring: {
type: DataTypes.BOOLEAN,
allowNull: false,
},
recurringFrequency: {
type: DataTypes.BIGINT,
allowNull: true,
},
});
await queryInterface.addIndex("schedules", ["name"], {
unique: true,
fields: ["name"],
});
await queryInterface.addIndex("schedules", ["sourceGuid"], {
fields: ["sourceGuid"],
});
await queryInterface.addIndex("schedules", ["state"], {
fields: ["state"],
});
},
down: async (queryInterface: Sequelize.QueryInterface) => {
await queryInterface.dropTable("schedules");
},
};