mirror of
https://github.com/Foundry376/Mailspring.git
synced 2025-03-03 11:36:08 +08:00
Use TEXT vs STRING, specify string column lengths
This commit is contained in:
parent
fbfe693dbd
commit
17df581105
8 changed files with 18 additions and 55 deletions
|
@ -2,7 +2,7 @@ const Sequelize = require('sequelize');
|
|||
|
||||
module.exports = {
|
||||
JSONType: (fieldName, {defaultValue = '{}'} = {}) => ({
|
||||
type: Sequelize.STRING,
|
||||
type: Sequelize.TEXT,
|
||||
defaultValue,
|
||||
get: function get() {
|
||||
return JSON.parse(this.getDataValue(fieldName))
|
||||
|
@ -12,7 +12,7 @@ module.exports = {
|
|||
},
|
||||
}),
|
||||
JSONARRAYType: (fieldName, {defaultValue = '[]'} = {}) => ({
|
||||
type: Sequelize.STRING,
|
||||
type: Sequelize.TEXT,
|
||||
defaultValue,
|
||||
get: function get() {
|
||||
return JSON.parse(this.getDataValue(fieldName))
|
||||
|
|
|
@ -4,9 +4,9 @@ module.exports = (sequelize, Sequelize) => {
|
|||
const File = sequelize.define('file', {
|
||||
accountId: { type: Sequelize.STRING, allowNull: false },
|
||||
version: Sequelize.INTEGER,
|
||||
filename: Sequelize.STRING,
|
||||
filename: Sequelize.STRING(500),
|
||||
partId: Sequelize.STRING,
|
||||
contentType: Sequelize.STRING,
|
||||
contentType: Sequelize.STRING(500),
|
||||
size: Sequelize.INTEGER,
|
||||
}, {
|
||||
classMethods: {
|
||||
|
|
|
@ -8,11 +8,11 @@ module.exports = (sequelize, Sequelize) => {
|
|||
accountId: { type: Sequelize.STRING, allowNull: false },
|
||||
version: Sequelize.INTEGER,
|
||||
headerMessageId: Sequelize.STRING,
|
||||
body: Sequelize.STRING,
|
||||
body: Sequelize.TEXT,
|
||||
headers: JSONType('headers'),
|
||||
subject: Sequelize.STRING,
|
||||
snippet: Sequelize.STRING,
|
||||
hash: Sequelize.STRING,
|
||||
subject: Sequelize.STRING(500),
|
||||
snippet: Sequelize.STRING(255),
|
||||
hash: Sequelize.STRING(65),
|
||||
date: Sequelize.DATE,
|
||||
unread: Sequelize.BOOLEAN,
|
||||
starred: Sequelize.BOOLEAN,
|
||||
|
@ -23,7 +23,7 @@ module.exports = (sequelize, Sequelize) => {
|
|||
bcc: JSONARRAYType('bcc'),
|
||||
replyTo: JSONARRAYType('replyTo'),
|
||||
folderImapUID: { type: Sequelize.STRING, allowNull: true},
|
||||
folderImapXGMLabels: { type: Sequelize.STRING, allowNull: true},
|
||||
folderImapXGMLabels: { type: Sequelize.TEXT, allowNull: true},
|
||||
}, {
|
||||
indexes: [
|
||||
{
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
const {typeJSON} = require('../model-helpers')
|
||||
const {JSONType} = require('../../database-types');
|
||||
|
||||
module.exports = (sequelize, Sequelize) => {
|
||||
const SyncbackRequest = sequelize.define('syncbackRequest', {
|
||||
|
@ -8,8 +8,8 @@ module.exports = (sequelize, Sequelize) => {
|
|||
defaultValue: "NEW",
|
||||
allowNull: false,
|
||||
},
|
||||
error: typeJSON('error'),
|
||||
props: typeJSON('props'),
|
||||
error: JSONType('error'),
|
||||
props: JSONType('props'),
|
||||
});
|
||||
|
||||
return SyncbackRequest;
|
||||
|
|
|
@ -5,8 +5,8 @@ module.exports = (sequelize, Sequelize) => {
|
|||
accountId: { type: Sequelize.STRING, allowNull: false },
|
||||
version: Sequelize.INTEGER,
|
||||
threadId: Sequelize.STRING,
|
||||
subject: Sequelize.STRING,
|
||||
snippet: Sequelize.STRING,
|
||||
subject: Sequelize.STRING(500),
|
||||
snippet: Sequelize.STRING(255),
|
||||
unreadCount: Sequelize.INTEGER,
|
||||
starredCount: Sequelize.INTEGER,
|
||||
firstMessageDate: Sequelize.DATE,
|
||||
|
|
|
@ -1,17 +1,11 @@
|
|||
const {JSONARRAYType} = require('../../database-types');
|
||||
|
||||
module.exports = (sequelize, Sequelize) => {
|
||||
const Transaction = sequelize.define('transaction', {
|
||||
type: Sequelize.STRING,
|
||||
objectId: Sequelize.STRING,
|
||||
modelName: Sequelize.STRING,
|
||||
changedFields: {
|
||||
type: Sequelize.STRING,
|
||||
get: function get() {
|
||||
return JSON.parse(this.getDataValue('changedFields'))
|
||||
},
|
||||
set: function set(val) {
|
||||
this.setDataValue('changedFields', JSON.stringify(val));
|
||||
},
|
||||
},
|
||||
changedFields: JSONARRAYType('changedFields'),
|
||||
});
|
||||
|
||||
return Transaction;
|
||||
|
|
|
@ -1,31 +0,0 @@
|
|||
const Sequelize = require('sequelize');
|
||||
|
||||
module.exports = {
|
||||
typeJSON: function typeJSON(key) {
|
||||
return {
|
||||
type: Sequelize.STRING,
|
||||
get: function get() {
|
||||
const val = this.getDataValue(key);
|
||||
if (typeof val === 'string') {
|
||||
try {
|
||||
return JSON.parse(val)
|
||||
} catch (e) {
|
||||
return val
|
||||
}
|
||||
}
|
||||
return val
|
||||
},
|
||||
set: function set(val) {
|
||||
let valToSet = val
|
||||
if (typeof val !== 'string') {
|
||||
try {
|
||||
valToSet = JSON.stringify(val)
|
||||
} catch (e) {
|
||||
valToSet = val;
|
||||
}
|
||||
}
|
||||
return this.setDataValue(key, valToSet)
|
||||
},
|
||||
}
|
||||
},
|
||||
}
|
|
@ -9,7 +9,7 @@ module.exports = (sequelize, Sequelize) => {
|
|||
provider: Sequelize.STRING,
|
||||
emailAddress: Sequelize.STRING,
|
||||
connectionSettings: JSONType('connectionSettings'),
|
||||
connectionCredentials: Sequelize.STRING,
|
||||
connectionCredentials: Sequelize.TEXT,
|
||||
syncPolicy: JSONType('syncPolicy'),
|
||||
syncError: JSONType('syncError', {defaultValue: null}),
|
||||
firstSyncCompletedAt: Sequelize.INTEGER,
|
||||
|
|
Loading…
Reference in a new issue