Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

hasPaperTrail is not a function - sequelize ^5.0.0-beta.13 #66

Open
matyaspeto opened this issue Feb 12, 2019 · 17 comments
Open

hasPaperTrail is not a function - sequelize ^5.0.0-beta.13 #66

matyaspeto opened this issue Feb 12, 2019 · 17 comments

Comments

@matyaspeto
Copy link

Hi,

in this version of Sequelize, apparently the _.extend(sequelize.Model) has no effect.
I tried to fix it in several way without any success :(

@nielsgl
Copy link
Owner

nielsgl commented Mar 9, 2019

Thanks for the heads up :) I'll check it out soon and see what I need to change to make it work, first need to work out a few bugs with the current library.

@nielsgl
Copy link
Owner

nielsgl commented Mar 16, 2019

@matyaspeto ok I got it working in a test version, I'll create a branch for it later today and try to push a beta version by tomorrow.

@jdgarvey
Copy link

@nielsgl I've been getting this error as well. I'm guessing that Sequelize v5 support wasn't included in 3.0.0-rc.6 (assuming this because of #74)?

@rjw209
Copy link

rjw209 commented Apr 11, 2019

@nielsgl

@matyaspeto ok I got it working in a test version, I'll create a branch for it later today and try to push a beta version by tomorrow.

Any updates when this branch might be available/ready? I've been tasked with migrating from Sequelize 4 to 5 because of sequelize/sequelize#8468.

@nielsgl
Copy link
Owner

nielsgl commented Apr 11, 2019

@jdgarvey @rjw209
Sorry I was traveling a lot the past weeks, I plan on getting it updated this weekend. I'll release the library v3 with support for Sequelize v4 and then probably the library as v4 with support for Sequelize v5.

@createthis
Copy link
Contributor

createthis commented Apr 26, 2019

I'm kind of confused. What does sequelize-paper-trail v3 add to make it sequelize v4 compatible? We've been using sequelize-paper-trail v2.4.2 with sequelize v4.43.2 for a while now without trouble. We're not power users, but this is news to me that it isn't v4 compatible.

@Wolvan
Copy link

Wolvan commented Apr 29, 2019

Any progress on releasing v4?

@nielsgl
Copy link
Owner

nielsgl commented May 3, 2019

@jdgarvey @rjw209 @Wolvan
Can you try it with 3.0.0-rc.7, that should work with Sequelize v4.

@nielsgl
Copy link
Owner

nielsgl commented May 3, 2019

Correction, should work with Sequelize v5 👍

@rjw209
Copy link

rjw209 commented May 3, 2019

@nielsgl Thanks for the update & clarification! I'm heads-down on another task at the moment, but will prioritize revisiting this as soon as I can carve out some time then will report back with any findings.

@Wolvan
Copy link

Wolvan commented May 3, 2019

I'll be giving it a try on monday, thanks a lot though!

@Wolvan
Copy link

Wolvan commented May 6, 2019

Alright, so tried it out: Two things I noticed immediately:

You must have left a test variable or something in the exports in /dist/helpers.js:112:3 (see here I think). Trying to run that errors out with ReferenceError: test is not defined

I also noticed that rc.7 depends on sequelize 4.x and installs that as a dependency (which it probably uses instead of the project's sequelize 5)

The .hasPaperTrail function on models unfortunately is still undefined. This is my code:

sqlize.import(resolve(__dirname, "./models", "Users.js"));
const PaperTrail = papertrail.init(sqlize, {
    userModel: "Users",
    debug: commander.debug
});

PaperTrail.defineModels();

let models = await fs.readdir(resolve(__dirname, "./models"));
models.forEach(model => {
    log.debug("Importing Model '" + model + "'");
    const mdl = sqlize.import(resolve(__dirname, "./models", model));
    if (mdl.hasPaperTrail) mdl.Revisions = mdl.hasPaperTrail();
});

Breakpointing at Ln13 and using the debugger to verify hasPaperTrail's value gives me undefined

@nielsgl
Copy link
Owner

nielsgl commented May 6, 2019

You must have left a test variable or something in the exports in /dist/helpers.js:112:3 (see here I think). Trying to run that errors out with ReferenceError: test is not defined

Ok fixed this 👍

I also noticed that rc.7 depends on sequelize 4.x and installs that as a dependency (which it probably uses instead of the project's sequelize 5)

Moved the dependency to dev dependencies so that should fix this.

I'll try tonight to quickly test it to get it working.

@nielsgl
Copy link
Owner

nielsgl commented May 6, 2019

@Wolvan I think it's fixed now, at least the tests are passing with Sequelize v5. Released as 3.0.0-rc.8

@Wolvan
Copy link

Wolvan commented May 7, 2019

Alright, mdl.hasPaperTrail is now defined and successfully defines a Revision prop on the models. Haven't looked deeper into it yet, but it looks promising enough!

@thantez
Copy link

thantez commented Jul 12, 2019

Hi.
I had this problem with sequelize v5.9.4 and sequelize-paper-trail v2.6.1 then I tried use rc version of sequelize-paper-trail for my project and error hasPaperTrail is not a function resolved! but new problems raised.
this is my first init options:
const paperTrail = PaperTrail.init(sequelize, { debug: true, userModel: 'user', exclude: [ 'createdAt', 'updatedAt' ], enableRevisionChangeModel: true, UUID: true, continuationKey: 'userId' })

when I tried to save a new user, user inserted to postgres but I gave this error in console:
sql: 'INSERT INTO "Revisions" ("model","document","operation","documentId","revision","id","createdAt","updatedAt") VALUES ($1,$2,$3,$4,$5,$6,$7,$8) RETURNING *;' }, sql: 'INSERT INTO "Revisions" ("model","document","operation","documentId","revision","id","createdAt","updatedAt") VALUES ($1,$2,$3,$4,$5,$6,$7,$8) RETURNING *;' } (node:6688) UnhandledPromiseRejectionWarning: SequelizeDatabaseError: invalid input syntax for type uuid: "1"
then I removed UUID: true from init options and tried again, so I gave this:
Executing (default): INSERT INTO "Revisions" ("id","model","document","operation","documentId","revision","createdAt","updatedAt") VALUES (DEFAULT,$1,$2,$3,$4,$5,$6,$7) RETURNING *; Revision save error TypeError: Cannot read property 'diffChars' of undefined
what should I doing? is this a bug?
thanks a lot.

@VasukiShayanaa
Copy link

VasukiShayanaa commented Sep 23, 2021

Hi.
I had this problem with sequelize v5.9.4 and sequelize-paper-trail v2.6.1 then I tried use rc version of sequelize-paper-trail for my project and error hasPaperTrail is not a function resolved! but new problems raised.
this is my first init options:
const paperTrail = PaperTrail.init(sequelize, { debug: true, userModel: 'user', exclude: [ 'createdAt', 'updatedAt' ], enableRevisionChangeModel: true, UUID: true, continuationKey: 'userId' })

when I tried to save a new user, user inserted to postgres but I gave this error in console:
sql: 'INSERT INTO "Revisions" ("model","document","operation","documentId","revision","id","createdAt","updatedAt") VALUES ($1,$2,$3,$4,$5,$6,$7,$8) RETURNING *;' }, sql: 'INSERT INTO "Revisions" ("model","document","operation","documentId","revision","id","createdAt","updatedAt") VALUES ($1,$2,$3,$4,$5,$6,$7,$8) RETURNING *;' } (node:6688) UnhandledPromiseRejectionWarning: SequelizeDatabaseError: invalid input syntax for type uuid: "1"
then I removed UUID: true from init options and tried again, so I gave this:
Executing (default): INSERT INTO "Revisions" ("id","model","document","operation","documentId","revision","createdAt","updatedAt") VALUES (DEFAULT,$1,$2,$3,$4,$5,$6,$7) RETURNING *; Revision save error TypeError: Cannot read property 'diffChars' of undefined
what should I doing? is this a bug?
thanks a lot.

try passing UUID: true, in options

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

8 participants