@flowfuse/flowfuse
Version:
An open source low-code development platform
75 lines (66 loc) • 2.24 kB
JavaScript
/**
* Add the ProjectStacks table
*/
const { DataTypes } = require('sequelize')
module.exports = {
up: async (context) => {
await context.createTable('Pipelines', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true
},
name: { type: DataTypes.STRING, allowNull: false },
createdAt: { type: DataTypes.DATE },
updatedAt: { type: DataTypes.DATE },
ApplicationId: {
type: DataTypes.INTEGER,
references: { model: 'Applications', key: 'id' },
onDelete: 'cascade',
onUpdate: 'cascade'
}
})
await context.createTable('PipelineStages', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true
},
name: { type: DataTypes.STRING, allowNull: false },
NextStageId: {
type: DataTypes.INTEGER,
allowNull: true,
references: { model: 'PipelineStages', key: 'id' },
onDelete: 'SET NULL ',
onUpdate: 'SET NULL '
},
PipelineId: {
type: DataTypes.INTEGER,
allowNull: false,
references: { model: 'Pipelines', key: 'id' },
onDelete: 'cascade',
onUpdate: 'cascade'
},
createdAt: { type: DataTypes.DATE },
updatedAt: { type: DataTypes.DATE }
})
await context.createTable('PipelineStageInstances', {
InstanceId: {
type: DataTypes.UUID,
allowNull: false,
references: { model: 'Projects', key: 'id' },
onDelete: 'cascade',
onUpdate: 'cascade'
},
PipelineStageId: {
type: DataTypes.INTEGER,
allowNull: false,
references: { model: 'PipelineStages', key: 'id' },
onDelete: 'cascade',
onUpdate: 'cascade'
}
})
},
down: async (context) => {
}
}