Open ewongbb opened 3 years ago
After much logging and wrangling, I have come to the conclusion that a change in sequelize version had changed the required format of the 'order' field as well as the attributes in the "breakpad.get '/crashreports'" block.
The required changes were (for sequelize 5.22.4):
breakpad.use paginate.middleware(10, 50)
@@ -266,20 +267,22 @@ run = ->
offset = req.offset
page = req.query.page
- attributes = []
+ attributes = ['*']
# only fetch non-blob attributes to speed up the query
for name, value of Crashreport.attributes
- unless value.type instanceof Sequelize.BLOB
+ unless value.type instanceof Sequelize.BLOB('long')
attributes.push name
findAllQuery =
- order: 'created_at DESC'
+ order: [['created_at', 'DESC']]
limit: limit
offset: offset
attributes: attributes
Apparently, the order field has to be a list of lists. The attributes has to at least be "*".
With these changes, the crashreports would display.
I created a database on a MySQL instance 5.7.27 and granted the necessary credentials.
1) create database breakpad; [I even tried: "create database breakpad character set utf8mb4 collate utf8mb4_general_ci;" but this would give me a data too long. (or SequelizeDatabaseError: Unknown error 1071). So from a link I found, I used the following: create database breakpad character set ucs2 collate ucs2_general_ci;
2) grabbed the source from this repo 2.1) npm install .
When I went to http://127.0.0.1:1127/crashreports, I get the following dump:
Unhandled rejection Error: Order must be type of array or instance of a valid sequelize method. at MySQLQueryGenerator.getQueryOrders (/home/bpad/projs/sbpad/node_modules/sequelize/lib/dialects/abstract/query-generator.js:2004:13) at MySQLQueryGenerator.selectQuery (/home/bpad/projs/sbpad/node_modules/sequelize/lib/dialects/abstract/query-generator.js:1356:27) at QueryInterface.select (/home/bpad/projs/sbpad/node_modules/sequelize/lib/query-interface.js:1127:27) at /home/bpad/projs/sbpad/node_modules/sequelize/lib/model.js:1759:34 at tryCatcher (/home/bpad/projs/sbpad/node_modules/bluebird/js/release/util.js:16:23) at Promise._settlePromiseFromHandler (/home/bpad/projs/sbpad/node_modules/bluebird/js/release/promise.js:547:31) at Promise._settlePromise (/home/bpad/projs/sbpad/node_modules/bluebird/js/release/promise.js:604:18) at Promise._settlePromise0 (/home/bpad/projs/sbpad/node_modules/bluebird/js/release/promise.js:649:10) at Promise._settlePromises (/home/bpad/projs/sbpad/node_modules/bluebird/js/release/promise.js:729:18) at _drainQueueStep (/home/bpad/projs/sbpad/node_modules/bluebird/js/release/async.js:93:12) at _drainQueue (/home/bpad/projs/sbpad/node_modules/bluebird/js/release/async.js:86:9) at Async._drainQueues (/home/bpad/projs/sbpad/node_modules/bluebird/js/release/async.js:102:5) at Immediate.Async.drainQueues [as _onImmediate] (/home/bpad/projs/sbpad/node_modules/bluebird/js/release/async.js:15:14) at processImmediate (internal/timers.js:439:21)
So I set in the configuration, database logging to true, I get:
Running "express:dev" (express) task Starting background Express server (node:15446) [SEQUELIZE0002] DeprecationWarning: The logging-option should be either a function or false. Default: console.log Executing (default): CREATE TABLE IF NOT EXISTS
crashreports
(id
INTEGER auto_increment ,product
VARCHAR(255),version
VARCHAR(255),ip
VARCHAR(255),customparam
VARCHAR(255),upload_file_minidump
LONGBLOB,customfile1
LONGBLOB,customfile2
LONGBLOB,created_at
DATETIME NOT NULL,updated_at
DATETIME NOT NULL, PRIMARY KEY (id
)) ENGINE=InnoDB;Running "watch" task Waiting... Executing (default): SHOW INDEX FROM
crashreports
FROMbreakpad
Executing (default): ALTER TABLEcrashreports
ADD INDEXcrashreports_created_at
(created_at
) Executing (default): CREATE TABLE IF NOT EXISTSsymfiles
(id
INTEGER auto_increment ,os
VARCHAR(255),name
VARCHAR(255),code
VARCHAR(255),arch
VARCHAR(255),contents
LONGTEXT,created_at
DATETIME NOT NULL,updated_at
DATETIME NOT NULL, UNIQUEcompositeIndex
(os
,name
,code
,arch
), PRIMARY KEY (id
)) ENGINE=InnoDB; Executing (default): SHOW INDEX FROMsymfiles
FROMbreakpad
Executing (default): ALTER TABLEsymfiles
ADD INDEXsymfiles_created_at
(created_at
) Executing (default): SELECTid
,os
,name
,code
,arch
,contents
,created_at
AScreatedAt
,updated_at
ASupdatedAt
FROMsymfiles
ASsymfiles
; Symfile loading finished Listening on port 1127 Unhandled rejection Error: Order must be type of array or instance of a valid sequelize method. at MySQLQueryGenerator.getQueryOrders (/home/bpad/projs/sbpad/node_modules/sequelize/lib/dialects/abstract/query-generator.js:2004:13) at MySQLQueryGenerator.selectQuery (/home/bpad/projs/sbpad/node_modules/sequelize/lib/dialects/abstract/query-generator.js:1356:27) at QueryInterface.select (/home/bpad/projs/sbpad/node_modules/sequelize/lib/query-interface.js:1127:27) at /home/bpad/projs/sbpad/node_modules/sequelize/lib/model.js:1759:34 at tryCatcher (/home/bpad/projs/sbpad/node_modules/bluebird/js/release/util.js:16:23) at Promise._settlePromiseFromHandler (/home/bpad/projs/sbpad/node_modules/bluebird/js/release/promise.js:547:31) at Promise._settlePromise (/home/bpad/projs/sbpad/node_modules/bluebird/js/release/promise.js:604:18) at Promise._settlePromise0 (/home/bpad/projs/sbpad/node_modules/bluebird/js/release/promise.js:649:10) at Promise._settlePromises (/home/bpad/projs/sbpad/node_modules/bluebird/js/release/promise.js:729:18) at _drainQueueStep (/home/bpad/projs/sbpad/node_modules/bluebird/js/release/async.js:93:12) at _drainQueue (/home/bpad/projs/sbpad/node_modules/bluebird/js/release/async.js:86:9) at Async._drainQueues (/home/bpad/projs/sbpad/node_modules/bluebird/js/release/async.js:102:5) at Immediate.Async.drainQueues [as _onImmediate] (/home/bpad/projs/sbpad/node_modules/bluebird/js/release/async.js:15:14) at processImmediate (internal/timers.js:439:21)Executing (default): SELECT count(*) AS
count
FROMcrashreports
AScrashreports
;This is where i'm stuck, as while I know for sure it's in the "breakpad.get '/crashreports', .." part of the code; and I think it's the "Crashreport.findAndCountAll(findAllQuery).then..." part. I just am not sure what to do next. I don't know anything about coffeescript, nor sequelize.