From 8fb674819a925ac24015bacdde707a66c8229e15 Mon Sep 17 00:00:00 2001 From: jgallego Date: Mon, 21 Sep 2020 10:35:39 +0200 Subject: [PATCH 1/7] ticket service --- .../{00-entryLog.sql => 00-entryLog copy.sql} | 0 .../10220-back2school/01-ticketService.sql | 9 +++++++++ e2e/helpers/selectors.js | 2 -- e2e/paths/05-ticket/13_services.spec.js | 8 -------- .../back/models/ticket-service-type.json | 1 - modules/ticket/front/services/index.html | 18 ------------------ 6 files changed, 9 insertions(+), 29 deletions(-) rename db/changes/10220-back2school/{00-entryLog.sql => 00-entryLog copy.sql} (100%) create mode 100644 db/changes/10220-back2school/01-ticketService.sql diff --git a/db/changes/10220-back2school/00-entryLog.sql b/db/changes/10220-back2school/00-entryLog copy.sql similarity index 100% rename from db/changes/10220-back2school/00-entryLog.sql rename to db/changes/10220-back2school/00-entryLog copy.sql diff --git a/db/changes/10220-back2school/01-ticketService.sql b/db/changes/10220-back2school/01-ticketService.sql new file mode 100644 index 000000000..ea2d588bb --- /dev/null +++ b/db/changes/10220-back2school/01-ticketService.sql @@ -0,0 +1,9 @@ +ALTER TABLE `vn`.`ticketService` +DROP FOREIGN KEY `ticketServiceIvaGroup`; +ALTER TABLE `vn`.`ticketService` +CHANGE COLUMN `taxClassFk` `taxClassFk` TINYINT(3) UNSIGNED NOT NULL DEFAULT 2 ; +ALTER TABLE `vn`.`ticketService` +ADD CONSTRAINT `ticketServiceIvaGroup` + FOREIGN KEY (`taxClassFk`) + REFERENCES `vn`.`taxClass` (`id`) + ON UPDATE CASCADE; diff --git a/e2e/helpers/selectors.js b/e2e/helpers/selectors.js index e1189ca50..8f66a3689 100644 --- a/e2e/helpers/selectors.js +++ b/e2e/helpers/selectors.js @@ -556,10 +556,8 @@ export default { firstServiceType: 'vn-ticket-service vn-autocomplete[ng-model="service.ticketServiceTypeFk"]', firstQuantity: 'vn-ticket-service vn-input-number[ng-model="service.quantity"]', firstPrice: 'vn-ticket-service vn-horizontal:nth-child(1) vn-input-number[ng-model="service.price"]', - firstVatType: 'vn-ticket-service vn-autocomplete[label="Tax class"]', fistDeleteServiceButton: 'vn-ticket-service form vn-horizontal:nth-child(1) vn-icon-button[icon="delete"]', newServiceTypeName: '.vn-dialog.shown vn-textfield[ng-model="newServiceType.name"]', - newServiceTypeExpense: '.vn-dialog.shown vn-autocomplete[ng-model="newServiceType.expenseFk"]', serviceLine: 'vn-ticket-service > form > vn-card > vn-one:nth-child(2) > vn-horizontal', saveServiceButton: 'button[type=submit]', saveServiceTypeButton: '.vn-dialog.shown tpl-buttons > button' diff --git a/e2e/paths/05-ticket/13_services.spec.js b/e2e/paths/05-ticket/13_services.spec.js index 08b9219a5..8102d9479 100644 --- a/e2e/paths/05-ticket/13_services.spec.js +++ b/e2e/paths/05-ticket/13_services.spec.js @@ -78,7 +78,6 @@ describe('Ticket services path', () => { it('should create a new service type then add price then create the service', async() => { await page.write(selectors.ticketService.newServiceTypeName, 'Documentos'); - await page.autocompleteSearch(selectors.ticketService.newServiceTypeExpense, 'Retencion'); await page.waitToClick(selectors.ticketService.saveServiceTypeButton); await page.write(selectors.ticketService.firstPrice, '999'); await page.waitToClick(selectors.ticketService.saveServiceButton); @@ -109,13 +108,6 @@ describe('Ticket services path', () => { expect(result).toEqual('999'); }); - it('should confirm the service VAT was created correctly', async() => { - const result = await page - .waitToGetProperty(selectors.ticketService.firstVatType, 'value'); - - expect(result).toEqual('General VAT'); - }); - it('should delete the service', async() => { await page.waitToClick(selectors.ticketService.fistDeleteServiceButton); await page.waitForNumberOfElements(selectors.ticketService.serviceLine, 0); diff --git a/modules/ticket/back/models/ticket-service-type.json b/modules/ticket/back/models/ticket-service-type.json index 9912c7952..623d0f398 100644 --- a/modules/ticket/back/models/ticket-service-type.json +++ b/modules/ticket/back/models/ticket-service-type.json @@ -17,7 +17,6 @@ }, "expenseFk": { "type": "Number", - "required": true, "mysql": { "columnName": "expenceFk" } diff --git a/modules/ticket/front/services/index.html b/modules/ticket/front/services/index.html index 261b50d6f..65d473013 100644 --- a/modules/ticket/front/services/index.html +++ b/modules/ticket/front/services/index.html @@ -41,13 +41,6 @@ ng-model="service.price" step="0.01"> - - - - - - -- 2.40.1 From b7721719ca6ec0e572c58ff00330e8ecb817be8f Mon Sep 17 00:00:00 2001 From: jgallego Date: Mon, 21 Sep 2020 11:07:10 +0200 Subject: [PATCH 2/7] test arreglados --- e2e/helpers/selectors.js | 2 +- e2e/paths/04-item/02_basic_data.spec.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/e2e/helpers/selectors.js b/e2e/helpers/selectors.js index 8f66a3689..7e8c80424 100644 --- a/e2e/helpers/selectors.js +++ b/e2e/helpers/selectors.js @@ -276,7 +276,7 @@ export default { relevancy: 'vn-item-basic-data vn-input-number[ng-model="$ctrl.item.relevancy"]', origin: 'vn-autocomplete[ng-model="$ctrl.item.originFk"]', compression: 'vn-item-basic-data vn-input-number[ng-model="$ctrl.item.compression"]', - isFragile: 'vn-check[label="isFragile"]', + isFragile: 'vn-check[label="Fragile"]', longName: 'vn-textfield[ng-model="$ctrl.item.longName"]', isActiveCheckbox: 'vn-check[label="Active"]', priceInKgCheckbox: 'vn-check[label="Price in kg"]', diff --git a/e2e/paths/04-item/02_basic_data.spec.js b/e2e/paths/04-item/02_basic_data.spec.js index 836efaa2e..f04031480 100644 --- a/e2e/paths/04-item/02_basic_data.spec.js +++ b/e2e/paths/04-item/02_basic_data.spec.js @@ -113,7 +113,7 @@ describe('Item Edit basic data path', () => { const result = await page .checkboxState(selectors.itemBasicData.isFragile); - expect(result).toBe('unchecked'); + expect(result).toBe('checked'); }); it('should confirm isActive checkbox is unchecked', async() => { -- 2.40.1 From 891a113326d471672243b229b65ba1d83a45452a Mon Sep 17 00:00:00 2001 From: jgallego Date: Wed, 30 Sep 2020 14:07:34 +0200 Subject: [PATCH 3/7] package --- package-lock.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index f0ae74065..411a06a7a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6916,9 +6916,9 @@ "dev": true }, "bl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.0.tgz", - "integrity": "sha512-wbgvOpqopSr7uq6fJrLH8EsvYMJf9gzfo2jCsL2eTy75qXPukA4pCgHamOQkZtY5vmfVtjB+P3LNlMHW5CEZXA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", + "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", "requires": { "readable-stream": "^2.3.5", "safe-buffer": "^5.1.1" @@ -13541,7 +13541,7 @@ "jasmine-spec-reporter": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-4.2.1.tgz", - "integrity": "sha512-FZBoZu7VE5nR7Nilzy+Np8KuVIOxF4oXDPDknehCYBDE080EnlPu0afdZNmpGDBRCUBv3mj5qgqCRmk6W/K8vg==", + "integrity": "sha1-HWMq7ANBZwrTJPkrqEtLMrNeniI=", "dev": true, "requires": { "colors": "1.1.2" -- 2.40.1 From 78e22df1774e9b10526d74eacc976f2afe6241bc Mon Sep 17 00:00:00 2001 From: jgallego Date: Thu, 1 Oct 2020 16:45:28 +0200 Subject: [PATCH 4/7] test e2e de expense ok --- db/dump/fixtures.sql | 4 ++- e2e/paths/04-item/09_regularize.spec.js | 2 +- package-lock.json | 44 ++++++++++++------------- 3 files changed, 26 insertions(+), 24 deletions(-) diff --git a/db/dump/fixtures.sql b/db/dump/fixtures.sql index f2267f4b8..ac0386876 100644 --- a/db/dump/fixtures.sql +++ b/db/dump/fixtures.sql @@ -479,7 +479,9 @@ INSERT INTO `vn`.`expence`(`id`, `taxTypeFk`, `name`, `isWithheld`) (4751000000, 1, 'Retenciones', 1), (4751000000, 6, 'Retencion', 0), (6210000567, 0, 'Alquiler VNH', 0), - (7001000000, 1, 'Mercaderia', 0); + (7001000000, 1, 'Mercaderia', 0), + (7050000000, 1, 'Prestacion de servicios', 1); + INSERT INTO `vn`.`invoiceOutExpence`(`id`, `invoiceOutFk`, `amount`, `expenceFk`, `created`) VALUES diff --git a/e2e/paths/04-item/09_regularize.spec.js b/e2e/paths/04-item/09_regularize.spec.js index 6de995515..822a4188d 100644 --- a/e2e/paths/04-item/09_regularize.spec.js +++ b/e2e/paths/04-item/09_regularize.spec.js @@ -1,7 +1,7 @@ import selectors from '../../helpers/selectors.js'; import getBrowser from '../../helpers/puppeteer'; -describe('Item regularize path', () => { +fdescribe('Item regularize path', () => { let browser; let page; beforeAll(async() => { diff --git a/package-lock.json b/package-lock.json index 72edc22a3..944d41637 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5835,7 +5835,7 @@ }, "util": { "version": "0.10.3", - "resolved": "http://registry.npmjs.org/util/-/util-0.10.3.tgz", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", "dev": true, "requires": { @@ -6806,7 +6806,7 @@ "base": { "version": "0.11.2", "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", "dev": true, "requires": { "cache-base": "^1.0.1", @@ -7329,7 +7329,7 @@ "cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=", "dev": true, "requires": { "collection-visit": "^1.0.0", @@ -7543,7 +7543,7 @@ "class-utils": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", "dev": true, "requires": { "arr-union": "^3.1.0", @@ -9796,7 +9796,7 @@ }, "file-loader": { "version": "1.1.11", - "resolved": "http://registry.npmjs.org/file-loader/-/file-loader-1.1.11.tgz", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.11.tgz", "integrity": "sha512-TGR4HU7HUsGg6GCOPJnFk06RhWgEWFLAGWiT6rcD+GRC2keU3s9RGJ+b3Z6/U73jwwNb2gKLJ7YCrp+jvU4ALg==", "dev": true, "requires": { @@ -10982,7 +10982,7 @@ "global-modules": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "integrity": "sha1-bXcPDrUjrHgWTXK15xqIdyZcw+o=", "dev": true, "requires": { "global-prefix": "^1.0.1", @@ -13207,7 +13207,7 @@ "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", "dev": true, "requires": { "isobject": "^3.0.1" @@ -22227,7 +22227,7 @@ "dependencies": { "jsesc": { "version": "0.5.0", - "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", "dev": true } @@ -22620,7 +22620,7 @@ }, "safe-regex": { "version": "1.1.0", - "resolved": "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { @@ -22834,7 +22834,7 @@ "dependencies": { "source-map": { "version": "0.4.4", - "resolved": "http://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { @@ -22850,18 +22850,18 @@ "dev": true }, "selfsigned": { - "version": "1.10.7", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.7.tgz", - "integrity": "sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA==", + "version": "1.10.8", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", + "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", "dev": true, "requires": { - "node-forge": "0.9.0" + "node-forge": "^0.10.0" }, "dependencies": { "node-forge": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz", - "integrity": "sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ==", + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", "dev": true } } @@ -23295,7 +23295,7 @@ "snapdragon-node": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", "dev": true, "requires": { "define-property": "^1.0.0", @@ -23346,7 +23346,7 @@ "snapdragon-util": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", "dev": true, "requires": { "kind-of": "^3.2.0" @@ -23630,7 +23630,7 @@ "split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", "dev": true, "requires": { "extend-shallow": "^3.0.0" @@ -24941,7 +24941,7 @@ "touch": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", - "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "integrity": "sha1-/jZfX3XsntTlaCXgu3bSSrdK+Ds=", "dev": true, "requires": { "nopt": "~1.0.10" @@ -26733,7 +26733,7 @@ }, "xmlbuilder": { "version": "9.0.7", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "resolved": "http://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" }, "xmlchars": { -- 2.40.1 From 8b4d25d506f5d9f6404f94d949e79dc38a3046e1 Mon Sep 17 00:00:00 2001 From: jgallego Date: Fri, 2 Oct 2020 08:57:51 +0200 Subject: [PATCH 5/7] test arreglados windows --- e2e/paths/04-item/09_regularize.spec.js | 2 +- e2e/paths/05-ticket/14_create_ticket.spec.js | 1 + e2e/paths/12-entry/04_create.spec.js | 7 +++---- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/e2e/paths/04-item/09_regularize.spec.js b/e2e/paths/04-item/09_regularize.spec.js index 6b39ed361..fdb1e0184 100644 --- a/e2e/paths/04-item/09_regularize.spec.js +++ b/e2e/paths/04-item/09_regularize.spec.js @@ -1,7 +1,7 @@ import selectors from '../../helpers/selectors.js'; import getBrowser from '../../helpers/puppeteer'; -fdescribe('Item regularize path', () => { +describe('Item regularize path', () => { let browser; let page; beforeAll(async() => { diff --git a/e2e/paths/05-ticket/14_create_ticket.spec.js b/e2e/paths/05-ticket/14_create_ticket.spec.js index 26c22ad3d..496cac161 100644 --- a/e2e/paths/05-ticket/14_create_ticket.spec.js +++ b/e2e/paths/05-ticket/14_create_ticket.spec.js @@ -42,6 +42,7 @@ describe('Ticket create path', () => { it('should again open the new ticket form', async() => { await page.waitToClick(selectors.globalItems.returnToModuleIndexButton); + await page.waitFor(500); await page.waitToClick(selectors.ticketsIndex.newTicketButton); await page.waitForState('ticket.create'); }); diff --git a/e2e/paths/12-entry/04_create.spec.js b/e2e/paths/12-entry/04_create.spec.js index 90dac618a..8cf23813b 100644 --- a/e2e/paths/12-entry/04_create.spec.js +++ b/e2e/paths/12-entry/04_create.spec.js @@ -20,14 +20,13 @@ describe('Entry create path', () => { await page.waitForState('entry.create'); }); - it('should fill the form to create a valid entry', async() => { + it('should fill the form to create a valid entry then redirect to basic Data', async() => { await page.autocompleteSearch(selectors.entryIndex.newEntrySupplier, '2'); await page.autocompleteSearch(selectors.entryIndex.newEntryTravel, 'Warehouse Three'); await page.autocompleteSearch(selectors.entryIndex.newEntryCompany, 'ORN'); - await page.waitToClick(selectors.entryIndex.saveNewEntry); - }); - it('should be redirected to entry basic data', async() => { + await page.waitToClick(selectors.entryIndex.saveNewEntry); + await page.waitFor(500); await page.waitForState('entry.card.basicData'); }); }); -- 2.40.1 From e95514d96741b94e3a4d4d06128c0431ea7aabb5 Mon Sep 17 00:00:00 2001 From: jgallego Date: Mon, 5 Oct 2020 09:24:49 +0200 Subject: [PATCH 6/7] reorganiza campos --- modules/entry/front/basic-data/index.html | 48 +++++++++++------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/modules/entry/front/basic-data/index.html b/modules/entry/front/basic-data/index.html index 67ac18df5..f3adc6b02 100644 --- a/modules/entry/front/basic-data/index.html +++ b/modules/entry/front/basic-data/index.html @@ -9,30 +9,6 @@
- - - - - - - - - - + + + + + + + + + + Date: Mon, 5 Oct 2020 13:22:56 +0200 Subject: [PATCH 7/7] quito copy --- .../10220-back2school/{00-entryLog copy.sql => 00-entryLog.sql} | 1 + 1 file changed, 1 insertion(+) rename db/changes/10220-back2school/{00-entryLog copy.sql => 00-entryLog.sql} (99%) diff --git a/db/changes/10220-back2school/00-entryLog copy.sql b/db/changes/10220-back2school/00-entryLog.sql similarity index 99% rename from db/changes/10220-back2school/00-entryLog copy.sql rename to db/changes/10220-back2school/00-entryLog.sql index 0e2551501..9af6ad5f2 100644 --- a/db/changes/10220-back2school/00-entryLog copy.sql +++ b/db/changes/10220-back2school/00-entryLog.sql @@ -4,3 +4,4 @@ ADD COLUMN `oldInstance` text CHARACTER SET utf8 COLLATE utf8_unicode_ci, ADD COLUMN `newInstance` text CHARACTER SET utf8 COLLATE utf8_unicode_ci, ADD COLUMN `changedModelId` int(11) DEFAULT NULL, ADD COLUMN `changedModelValue` varchar(45) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL; + -- 2.40.1