Skip to content

Commit 0b4dac7

Browse files
authored
Merge pull request #406 from hackmdio/feature/add_missing_migration
fix: Add missing migration
2 parents b298508 + e46874d commit 0b4dac7

8 files changed

Lines changed: 168 additions & 0 deletions
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
'use strict'
2+
module.exports = {
3+
up: function (queryInterface, Sequelize) {
4+
return queryInterface.createTable('Users', {
5+
id: {
6+
type: Sequelize.UUID,
7+
primaryKey: true,
8+
defaultValue: Sequelize.UUIDV4
9+
},
10+
profileid: {
11+
type: Sequelize.STRING,
12+
unique: true
13+
},
14+
profile: Sequelize.TEXT,
15+
history: Sequelize.TEXT,
16+
createdAt: Sequelize.DATE,
17+
updatedAt: Sequelize.DATE
18+
})
19+
},
20+
21+
down: function (queryInterface, Sequelize) {
22+
return queryInterface.dropTable('Users')
23+
}
24+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
'use strict'
2+
module.exports = {
3+
up: function (queryInterface, Sequelize) {
4+
return queryInterface.createTable('Notes', {
5+
id: {
6+
type: Sequelize.UUID,
7+
primaryKey: true,
8+
defaultValue: Sequelize.UUIDV4
9+
},
10+
ownerId: Sequelize.UUID,
11+
content: Sequelize.TEXT,
12+
title: Sequelize.STRING,
13+
createdAt: Sequelize.DATE,
14+
updatedAt: Sequelize.DATE
15+
})
16+
},
17+
18+
down: function (queryInterface, Sequelize) {
19+
return queryInterface.dropTable('Notes')
20+
}
21+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
'use strict'
2+
module.exports = {
3+
up: function (queryInterface, Sequelize) {
4+
return queryInterface.createTable('Temp', {
5+
id: {
6+
type: Sequelize.STRING,
7+
primaryKey: true
8+
},
9+
date: Sequelize.TEXT,
10+
createdAt: Sequelize.DATE,
11+
updatedAt: Sequelize.DATE
12+
})
13+
},
14+
15+
down: function (queryInterface, Sequelize) {
16+
return queryInterface.dropTable('Temp')
17+
}
18+
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
'use strict'
2+
module.exports = {
3+
up: function (queryInterface, Sequelize) {
4+
return queryInterface.addColumn('Notes', 'shortid', {
5+
type: Sequelize.STRING,
6+
defaultValue: '0000000000',
7+
allowNull: false
8+
}).then(function () {
9+
return queryInterface.addIndex('Notes', ['shortid'], {
10+
indicesType: 'UNIQUE'
11+
})
12+
}).then(function () {
13+
return queryInterface.addColumn('Notes', 'permission', {
14+
type: Sequelize.STRING,
15+
defaultValue: 'private',
16+
allowNull: false
17+
})
18+
}).then(function () {
19+
return queryInterface.addColumn('Notes', 'viewcount', {
20+
type: Sequelize.INTEGER,
21+
defaultValue: 0
22+
})
23+
})
24+
},
25+
26+
down: function (queryInterface, Sequelize) {
27+
return queryInterface.removeColumn('Notes', 'viewcount')
28+
.then(function () {
29+
return queryInterface.removeColumn('Notes', 'permission')
30+
})
31+
.then(function () {
32+
return queryInterface.removeIndex('Notes', ['shortid'])
33+
})
34+
.then(function () {
35+
return queryInterface.removeColumn('Notes', 'shortid')
36+
})
37+
}
38+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
'use strict'
2+
const isSQLite = require('../utils').isSQLite
3+
module.exports = {
4+
up: function (queryInterface, Sequelize) {
5+
return queryInterface.changeColumn('Notes', 'title', {
6+
type: Sequelize.TEXT
7+
}).then(function () {
8+
if (isSQLite(queryInterface.sequelize)) {
9+
// manual added index will be removed in sqlite
10+
return queryInterface.addIndex('Notes', ['shortid'])
11+
}
12+
})
13+
},
14+
15+
down: function (queryInterface, Sequelize) {
16+
return queryInterface.changeColumn('Notes', 'title', {
17+
type: Sequelize.STRING
18+
}).then(function () {
19+
if (isSQLite(queryInterface.sequelize)) {
20+
// manual added index will be removed in sqlite
21+
return queryInterface.addIndex('Notes', ['shortid'])
22+
}
23+
})
24+
}
25+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
'use strict'
2+
module.exports = {
3+
up: function (queryInterface, Sequelize) {
4+
return queryInterface.addColumn('Notes', 'lastchangeuserId', {
5+
type: Sequelize.UUID
6+
}).then(function () {
7+
return queryInterface.addColumn('Notes', 'lastchangeAt', {
8+
type: Sequelize.DATE
9+
})
10+
})
11+
},
12+
13+
down: function (queryInterface, Sequelize) {
14+
return queryInterface.removeColumn('Notes', 'lastchangeAt')
15+
.then(function () {
16+
return queryInterface.removeColumn('Notes', 'lastchangeuserId')
17+
})
18+
}
19+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
'use strict'
2+
module.exports = {
3+
up: function (queryInterface, Sequelize) {
4+
return queryInterface.addColumn('Notes', 'alias', {
5+
type: Sequelize.STRING
6+
}).then(function () {
7+
return queryInterface.addIndex('Notes', ['alias'], {
8+
indicesType: 'UNIQUE'
9+
})
10+
})
11+
},
12+
13+
down: function (queryInterface, Sequelize) {
14+
return queryInterface.removeColumn('Notes', 'alias').then(function () {
15+
return queryInterface.removeIndex('Notes', ['alias'])
16+
})
17+
}
18+
}

lib/utils.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
'use strict'
2+
3+
exports.isSQLite = function isSQLite (sequelize) {
4+
return sequelize.options.dialect === 'sqlite'
5+
}

0 commit comments

Comments
 (0)