mirror of
https://github.com/plankanban/planka.git
synced 2025-07-18 20:59:44 +02:00
Initial commit
This commit is contained in:
commit
36fe34e8e1
583 changed files with 91539 additions and 0 deletions
19
server/db/migrations/20180721021044_create_archive.js
Executable file
19
server/db/migrations/20180721021044_create_archive.js
Executable file
|
@ -0,0 +1,19 @@
|
|||
module.exports.up = knex =>
|
||||
knex.schema.createTable('archive', table => {
|
||||
/* Columns */
|
||||
|
||||
table.increments();
|
||||
|
||||
table.text('from_model').notNullable();
|
||||
table.integer('original_record_id').notNullable();
|
||||
table.json('original_record').notNullable();
|
||||
|
||||
table.timestamp('created_at', true);
|
||||
table.timestamp('updated_at', true);
|
||||
|
||||
/* Indexes */
|
||||
|
||||
table.unique(['from_model', 'original_record_id']);
|
||||
});
|
||||
|
||||
module.exports.down = knex => knex.schema.dropTable('archive');
|
22
server/db/migrations/20180721220409_create_user.js
Executable file
22
server/db/migrations/20180721220409_create_user.js
Executable file
|
@ -0,0 +1,22 @@
|
|||
module.exports.up = knex =>
|
||||
knex.schema
|
||||
.createTable('user', table => {
|
||||
/* Columns */
|
||||
|
||||
table.increments();
|
||||
|
||||
table.text('email').notNullable();
|
||||
table.text('password').notNullable();
|
||||
table.boolean('is_admin').notNullable();
|
||||
table.text('name').notNullable();
|
||||
table.text('avatar');
|
||||
|
||||
table.timestamp('created_at', true);
|
||||
table.timestamp('updated_at', true);
|
||||
table.timestamp('deleted_at', true);
|
||||
})
|
||||
.raw(
|
||||
'ALTER TABLE "user" ADD CONSTRAINT "user_email_unique" EXCLUDE ("email" WITH =) WHERE ("deleted_at" IS NULL)'
|
||||
);
|
||||
|
||||
module.exports.down = knex => knex.schema.dropTable('user');
|
13
server/db/migrations/20180721233450_create_project.js
Executable file
13
server/db/migrations/20180721233450_create_project.js
Executable file
|
@ -0,0 +1,13 @@
|
|||
module.exports.up = knex =>
|
||||
knex.schema.createTable('project', table => {
|
||||
/* Columns */
|
||||
|
||||
table.increments();
|
||||
|
||||
table.text('name').notNullable();
|
||||
|
||||
table.timestamp('created_at', true);
|
||||
table.timestamp('updated_at', true);
|
||||
});
|
||||
|
||||
module.exports.down = knex => knex.schema.dropTable('project');
|
19
server/db/migrations/20180721234154_create_project_membership.js
Executable file
19
server/db/migrations/20180721234154_create_project_membership.js
Executable file
|
@ -0,0 +1,19 @@
|
|||
module.exports.up = knex =>
|
||||
knex.schema.createTable('project_membership', table => {
|
||||
/* Columns */
|
||||
|
||||
table.increments();
|
||||
|
||||
table.integer('project_id').notNullable();
|
||||
table.integer('user_id').notNullable();
|
||||
|
||||
table.timestamp('created_at', true);
|
||||
table.timestamp('updated_at', true);
|
||||
|
||||
/* Indexes */
|
||||
|
||||
table.unique(['project_id', 'user_id']);
|
||||
table.index('user_id');
|
||||
});
|
||||
|
||||
module.exports.down = knex => knex.schema.dropTable('project_membership');
|
21
server/db/migrations/20180722000627_create_board.js
Executable file
21
server/db/migrations/20180722000627_create_board.js
Executable file
|
@ -0,0 +1,21 @@
|
|||
module.exports.up = knex =>
|
||||
knex.schema.createTable('board', table => {
|
||||
/* Columns */
|
||||
|
||||
table.increments();
|
||||
|
||||
table.integer('project_id').notNullable();
|
||||
|
||||
table.specificType('position', 'double precision').notNullable();
|
||||
table.text('name').notNullable();
|
||||
|
||||
table.timestamp('created_at', true);
|
||||
table.timestamp('updated_at', true);
|
||||
|
||||
/* Indexes */
|
||||
|
||||
table.index('project_id');
|
||||
table.index('position');
|
||||
});
|
||||
|
||||
module.exports.down = knex => knex.schema.dropTable('board');
|
21
server/db/migrations/20180722003437_create_list.js
Executable file
21
server/db/migrations/20180722003437_create_list.js
Executable file
|
@ -0,0 +1,21 @@
|
|||
module.exports.up = knex =>
|
||||
knex.schema.createTable('list', table => {
|
||||
/* Columns */
|
||||
|
||||
table.increments();
|
||||
|
||||
table.integer('board_id').notNullable();
|
||||
|
||||
table.specificType('position', 'double precision').notNullable();
|
||||
table.text('name').notNullable();
|
||||
|
||||
table.timestamp('created_at', true);
|
||||
table.timestamp('updated_at', true);
|
||||
|
||||
/* Indexes */
|
||||
|
||||
table.index('board_id');
|
||||
table.index('position');
|
||||
});
|
||||
|
||||
module.exports.down = knex => knex.schema.dropTable('list');
|
20
server/db/migrations/20180722003502_create_label.js
Executable file
20
server/db/migrations/20180722003502_create_label.js
Executable file
|
@ -0,0 +1,20 @@
|
|||
module.exports.up = knex =>
|
||||
knex.schema.createTable('label', table => {
|
||||
/* Columns */
|
||||
|
||||
table.increments();
|
||||
|
||||
table.integer('board_id').notNullable();
|
||||
|
||||
table.text('name').notNullable();
|
||||
table.text('color');
|
||||
|
||||
table.timestamp('created_at', true);
|
||||
table.timestamp('updated_at', true);
|
||||
|
||||
/* Indexes */
|
||||
|
||||
table.index('board_id');
|
||||
});
|
||||
|
||||
module.exports.down = knex => knex.schema.dropTable('label');
|
25
server/db/migrations/20180722003614_create_card.js
Executable file
25
server/db/migrations/20180722003614_create_card.js
Executable file
|
@ -0,0 +1,25 @@
|
|||
module.exports.up = knex =>
|
||||
knex.schema.createTable('card', table => {
|
||||
/* Columns */
|
||||
|
||||
table.increments();
|
||||
|
||||
table.integer('list_id').notNullable();
|
||||
table.integer('board_id').notNullable();
|
||||
|
||||
table.specificType('position', 'double precision').notNullable();
|
||||
table.text('name').notNullable();
|
||||
table.text('description');
|
||||
table.timestamp('deadline', true);
|
||||
table.jsonb('timer');
|
||||
|
||||
table.timestamp('created_at', true);
|
||||
table.timestamp('updated_at', true);
|
||||
|
||||
/* Indexes */
|
||||
|
||||
table.index('list_id');
|
||||
table.index('position');
|
||||
});
|
||||
|
||||
module.exports.down = knex => knex.schema.dropTable('card');
|
21
server/db/migrations/20180722005122_create_card_subscription.js
Executable file
21
server/db/migrations/20180722005122_create_card_subscription.js
Executable file
|
@ -0,0 +1,21 @@
|
|||
module.exports.up = knex =>
|
||||
knex.schema.createTable('card_subscription', table => {
|
||||
/* Columns */
|
||||
|
||||
table.increments();
|
||||
|
||||
table.integer('card_id').notNullable();
|
||||
table.integer('user_id').notNullable();
|
||||
|
||||
table.boolean('is_permanent').notNullable();
|
||||
|
||||
table.timestamp('created_at', true);
|
||||
table.timestamp('updated_at', true);
|
||||
|
||||
/* Indexes */
|
||||
|
||||
table.unique(['card_id', 'user_id']);
|
||||
table.index('user_id');
|
||||
});
|
||||
|
||||
module.exports.down = knex => knex.schema.dropTable('card_subscription');
|
19
server/db/migrations/20180722005359_create_card_membership.js
Executable file
19
server/db/migrations/20180722005359_create_card_membership.js
Executable file
|
@ -0,0 +1,19 @@
|
|||
module.exports.up = knex =>
|
||||
knex.schema.createTable('card_membership', table => {
|
||||
/* Columns */
|
||||
|
||||
table.increments();
|
||||
|
||||
table.integer('card_id').notNullable();
|
||||
table.integer('user_id').notNullable();
|
||||
|
||||
table.timestamp('created_at', true);
|
||||
table.timestamp('updated_at', true);
|
||||
|
||||
/* Indexes */
|
||||
|
||||
table.unique(['card_id', 'user_id']);
|
||||
table.index('user_id');
|
||||
});
|
||||
|
||||
module.exports.down = knex => knex.schema.dropTable('card_membership');
|
19
server/db/migrations/20180722005928_create_card_label.js
Executable file
19
server/db/migrations/20180722005928_create_card_label.js
Executable file
|
@ -0,0 +1,19 @@
|
|||
module.exports.up = knex =>
|
||||
knex.schema.createTable('card_label', table => {
|
||||
/* Columns */
|
||||
|
||||
table.increments();
|
||||
|
||||
table.integer('card_id').notNullable();
|
||||
table.integer('label_id').notNullable();
|
||||
|
||||
table.timestamp('created_at', true);
|
||||
table.timestamp('updated_at', true);
|
||||
|
||||
/* Indexes */
|
||||
|
||||
table.unique(['card_id', 'label_id']);
|
||||
table.index('label_id');
|
||||
});
|
||||
|
||||
module.exports.down = knex => knex.schema.dropTable('card_label');
|
20
server/db/migrations/20180722006570_create_task.js
Executable file
20
server/db/migrations/20180722006570_create_task.js
Executable file
|
@ -0,0 +1,20 @@
|
|||
module.exports.up = knex =>
|
||||
knex.schema.createTable('task', table => {
|
||||
/* Columns */
|
||||
|
||||
table.increments();
|
||||
|
||||
table.integer('card_id').notNullable();
|
||||
|
||||
table.text('name').notNullable();
|
||||
table.boolean('is_completed').notNullable();
|
||||
|
||||
table.timestamp('created_at', true);
|
||||
table.timestamp('updated_at', true);
|
||||
|
||||
/* Indexes */
|
||||
|
||||
table.index('card_id');
|
||||
});
|
||||
|
||||
module.exports.down = knex => knex.schema.dropTable('task');
|
21
server/db/migrations/20181024220134_create_action.js
Executable file
21
server/db/migrations/20181024220134_create_action.js
Executable file
|
@ -0,0 +1,21 @@
|
|||
module.exports.up = knex =>
|
||||
knex.schema.createTable('action', table => {
|
||||
/* Columns */
|
||||
|
||||
table.increments();
|
||||
|
||||
table.integer('card_id').notNullable();
|
||||
table.integer('user_id').notNullable();
|
||||
|
||||
table.text('type').notNullable();
|
||||
table.jsonb('data').notNullable();
|
||||
|
||||
table.timestamp('created_at', true);
|
||||
table.timestamp('updated_at', true);
|
||||
|
||||
/* Indexes */
|
||||
|
||||
table.index('card_id');
|
||||
});
|
||||
|
||||
module.exports.down = knex => knex.schema.dropTable('action');
|
24
server/db/migrations/20181112104653_create_notification.js
Executable file
24
server/db/migrations/20181112104653_create_notification.js
Executable file
|
@ -0,0 +1,24 @@
|
|||
module.exports.up = knex =>
|
||||
knex.schema.createTable('notification', table => {
|
||||
/* Columns */
|
||||
|
||||
table.increments();
|
||||
|
||||
table.integer('user_id').notNullable();
|
||||
table.integer('action_id').notNullable();
|
||||
table.integer('card_id').notNullable();
|
||||
|
||||
table.boolean('is_read').notNullable();
|
||||
|
||||
table.timestamp('created_at', true);
|
||||
table.timestamp('updated_at', true);
|
||||
|
||||
/* Indexes */
|
||||
|
||||
table.index('user_id');
|
||||
table.index('action_id');
|
||||
table.index('card_id');
|
||||
table.index('is_read');
|
||||
});
|
||||
|
||||
module.exports.down = knex => knex.schema.dropTable('notification');
|
Loading…
Add table
Add a link
Reference in a new issue