mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2024-11-24 18:56:32 -05:00
RevisionEntity: Change primary key type from UUID to number
The precision of sqlites datetime() timestamp is only one second (see https://www.sqlite.org/lang_datefunc.html). Therefore we could not order revisions of one note that were created in the same second. To remedy this, the primary key was changed to a monotonically increasing number, which solves the ordering problem. Signed-off-by: David Mehren <git@herrmehren.de>
This commit is contained in:
parent
1abb472621
commit
d462a571d8
5 changed files with 10 additions and 9 deletions
|
@ -58,7 +58,7 @@ entity "Session" as seesion {
|
|||
|
||||
|
||||
entity "Revision" {
|
||||
*id : uuid <<generated>>
|
||||
*id : number <<generated>>
|
||||
--
|
||||
*noteId : uuid <<FK Note>>
|
||||
*content : text
|
||||
|
@ -78,7 +78,7 @@ entity "Authorship" {
|
|||
}
|
||||
|
||||
entity "RevisionAuthorship" {
|
||||
*revisionId : uuid <<FK Revision>>
|
||||
*revisionId : number <<FK Revision>>
|
||||
*authorshipId : uuid <<FK Authorship>>
|
||||
}
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ import { IsDate, IsNumber, IsString } from 'class-validator';
|
|||
import { Revision } from './revision.entity';
|
||||
|
||||
export class RevisionMetadataDto {
|
||||
@IsString()
|
||||
@IsNumber()
|
||||
id: Revision['id'];
|
||||
|
||||
@IsDate()
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
import { IsString } from 'class-validator';
|
||||
import { IsNumber, IsString } from 'class-validator';
|
||||
import { Revision } from './revision.entity';
|
||||
|
||||
export class RevisionDto {
|
||||
@IsString()
|
||||
@IsNumber()
|
||||
id: Revision['id'];
|
||||
@IsString()
|
||||
content: string;
|
||||
|
|
|
@ -16,8 +16,8 @@ import { Authorship } from './authorship.entity';
|
|||
*/
|
||||
@Entity()
|
||||
export class Revision {
|
||||
@PrimaryGeneratedColumn('uuid')
|
||||
id: string;
|
||||
@PrimaryGeneratedColumn()
|
||||
id: number;
|
||||
|
||||
/**
|
||||
* The patch from the previous revision to this one.
|
||||
|
|
|
@ -16,14 +16,14 @@ export class RevisionsService {
|
|||
this.logger.warn('Using hardcoded data!');
|
||||
return [
|
||||
{
|
||||
id: 'some-uuid',
|
||||
id: 42,
|
||||
updatedAt: new Date(),
|
||||
length: 42,
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
getNoteRevision(noteIdOrAlias: string, revisionId: string): RevisionDto {
|
||||
getNoteRevision(noteIdOrAlias: string, revisionId: number): RevisionDto {
|
||||
this.logger.warn('Using hardcoded data!');
|
||||
return {
|
||||
id: revisionId,
|
||||
|
@ -39,6 +39,7 @@ export class RevisionsService {
|
|||
},
|
||||
order: {
|
||||
createdAt: 'DESC',
|
||||
id: 'DESC',
|
||||
},
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue