Compare commits

...

1 Commits

Author SHA1 Message Date
Flatlogic Bot
4eff053ea7 Autosave: 20260314-143316 2026-03-14 14:33:16 +00:00
7 changed files with 138 additions and 0 deletions

View File

@ -0,0 +1,31 @@
'use strict';
module.exports = {
up: async (queryInterface, Sequelize) => {
await queryInterface.createTable('files', {
id: {
allowNull: false,
primaryKey: true,
type: Sequelize.UUID,
defaultValue: Sequelize.UUIDV4
},
name: {
type: Sequelize.STRING
},
url: {
type: Sequelize.STRING
},
createdAt: {
allowNull: false,
type: Sequelize.DATE
},
updatedAt: {
allowNull: false,
type: Sequelize.DATE
}
});
},
down: async (queryInterface, Sequelize) => {
await queryInterface.dropTable('files');
}
};

View File

@ -0,0 +1,23 @@
'use strict';
module.exports = {
up: async (queryInterface, Sequelize) => {
await queryInterface.addColumn('files', 'belongsTo', {
type: Sequelize.STRING(255),
allowNull: true,
});
await queryInterface.addColumn('files', 'belongsToId', {
type: Sequelize.UUID,
allowNull: true,
});
await queryInterface.addColumn('files', 'belongsToColumn', {
type: Sequelize.STRING(255),
allowNull: true,
});
},
down: async (queryInterface, Sequelize) => {
await queryInterface.removeColumn('files', 'belongsTo');
await queryInterface.removeColumn('files', 'belongsToId');
await queryInterface.removeColumn('files', 'belongsToColumn');
}
};

View File

@ -0,0 +1,14 @@
'use strict';
module.exports = {
up: async (queryInterface, Sequelize) => {
await queryInterface.addColumn('files', 'sizeInBytes', {
type: Sequelize.INTEGER,
allowNull: true,
});
},
down: async (queryInterface, Sequelize) => {
await queryInterface.removeColumn('files', 'sizeInBytes');
}
};

View File

@ -0,0 +1,14 @@
'use strict';
module.exports = {
up: async (queryInterface, Sequelize) => {
return queryInterface.addColumn('files', 'privateUrl', {
type: Sequelize.STRING,
allowNull: true,
});
},
down: async (queryInterface, Sequelize) => {
return queryInterface.removeColumn('files', 'privateUrl');
}
};

View File

@ -0,0 +1,18 @@
module.exports = {
up: async (queryInterface, Sequelize) => {
const tableInfo = await queryInterface.describeTable('files');
if (!tableInfo.publicUrl) {
await queryInterface.addColumn('files', 'publicUrl', {
type: Sequelize.STRING(2083),
allowNull: false,
defaultValue: '',
});
}
},
down: async (queryInterface, Sequelize) => {
const tableInfo = await queryInterface.describeTable('files');
if (tableInfo.publicUrl) {
await queryInterface.removeColumn('files', 'publicUrl');
}
},
};

View File

@ -0,0 +1,16 @@
'use strict';
module.exports = {
up: async (queryInterface, Sequelize) => {
const tableInfo = await queryInterface.describeTable('files');
if (!tableInfo.deletedAt) {
await queryInterface.addColumn('files', 'deletedAt', {
type: Sequelize.DATE,
allowNull: true,
});
}
},
down: async (queryInterface, Sequelize) => {
await queryInterface.removeColumn('files', 'deletedAt');
}
};

View File

@ -0,0 +1,22 @@
'use strict';
module.exports = {
up: async (queryInterface, Sequelize) => {
const tableInfo = await queryInterface.describeTable('files');
if (!tableInfo.createdById) {
await queryInterface.addColumn('files', 'createdById', {
type: Sequelize.INTEGER,
allowNull: true,
references: {
model: 'users',
key: 'id'
},
onUpdate: 'CASCADE',
onDelete: 'SET NULL'
});
}
},
down: async (queryInterface, Sequelize) => {
await queryInterface.removeColumn('files', 'createdById');
}
};