mirror of
https://github.com/plankanban/planka.git
synced 2025-07-24 15:49:46 +02:00
Change id generation algorithm, display notifications total on the main page
This commit is contained in:
parent
4911816734
commit
e8139b29d5
86 changed files with 264 additions and 159 deletions
|
@ -0,0 +1,26 @@
|
|||
module.exports.up = knex => knex.raw(`
|
||||
CREATE SEQUENCE next_id_seq;
|
||||
|
||||
CREATE FUNCTION next_id(OUT id BIGINT) AS $$
|
||||
DECLARE
|
||||
shard INT := 1;
|
||||
epoch BIGINT := 1567191600000;
|
||||
|
||||
sequence BIGINT;
|
||||
milliseconds BIGINT;
|
||||
BEGIN
|
||||
SELECT nextval('next_id_seq') % 1024 INTO sequence;
|
||||
SELECT FLOOR(EXTRACT(EPOCH FROM clock_timestamp()) * 1000) INTO milliseconds;
|
||||
|
||||
id := (milliseconds - epoch) << 23;
|
||||
id := id | (shard << 10);
|
||||
id := id | (sequence);
|
||||
END;
|
||||
$$ LANGUAGE PLPGSQL;
|
||||
`);
|
||||
|
||||
module.exports.down = knex => knex.raw(`
|
||||
DROP SEQUENCE next_id_seq;
|
||||
|
||||
DROP FUNCTION next_id(OUT id BIGINT);
|
||||
`);
|
Loading…
Add table
Add a link
Reference in a new issue