diff --git a/database/-postponed/2018_07_08_202724_create_table_comments_table.php b/database/-postponed/2018_07_08_202724_create_table_comments_table.php deleted file mode 100644 index 9b7719f..0000000 --- a/database/-postponed/2018_07_08_202724_create_table_comments_table.php +++ /dev/null @@ -1,41 +0,0 @@ -increments('id'); - $table->timestamps(); - $table->unsignedInteger('data_table_id'); - $table->unsignedInteger('author_id'); - - $table->foreign('data_table_id') - ->references('id')->on('data_tables') - ->onDelete('cascade'); - - $table->foreign('author_id') - ->references('id')->on('users') - ->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('table_comments'); - } -} diff --git a/database/-postponed/2018_07_08_203424_create_user_follows_table.php b/database/-postponed/2018_07_08_203424_create_user_follows_table.php deleted file mode 100644 index ad16984..0000000 --- a/database/-postponed/2018_07_08_203424_create_user_follows_table.php +++ /dev/null @@ -1,41 +0,0 @@ -increments('id'); - $table->timestamps(); - $table->unsignedInteger('user_id'); - $table->unsignedInteger('target_user_id'); - - $table->foreign('user_id') - ->references('id')->on('users') - ->onDelete('cascade'); - - $table->foreign('target_user_id') - ->references('id')->on('users') - ->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('user_follows'); - } -} diff --git a/database/-postponed/2018_07_08_204223_create_table_favourites_table.php b/database/-postponed/2018_07_08_204223_create_table_favourites_table.php deleted file mode 100644 index 9f1b45e..0000000 --- a/database/-postponed/2018_07_08_204223_create_table_favourites_table.php +++ /dev/null @@ -1,42 +0,0 @@ -increments('id'); - $table->timestamps(); - - $table->unsignedInteger('user_id'); - $table->unsignedInteger('data_table_id'); - - $table->foreign('user_id') - ->references('id')->on('users') - ->onDelete('cascade'); - - $table->foreign('data_table_id') - ->references('id')->on('data_tables') - ->onDelete('cascade'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('table_favourites'); - } -} diff --git a/database/migrations/2018_07_08_193638_create_data_tables_table.php b/database/migrations/2018_07_08_193638_create_data_tables_table.php index 35830ec..729b41c 100644 --- a/database/migrations/2018_07_08_193638_create_data_tables_table.php +++ b/database/migrations/2018_07_08_193638_create_data_tables_table.php @@ -23,7 +23,6 @@ class CreateDataTablesTable extends Migration $table->text('description'); $table->text('license'); $table->text('source_link'); - $table->longText('content'); $table->foreign('owner_id')->references('id')->on('users') ->onDelete('cascade'); diff --git a/database/migrations/2018_07_08_193639_create_changesets_table.php b/database/migrations/2018_07_08_193639_create_changesets_table.php index 9219fc7..a97261a 100644 --- a/database/migrations/2018_07_08_193639_create_changesets_table.php +++ b/database/migrations/2018_07_08_193639_create_changesets_table.php @@ -15,12 +15,13 @@ class CreateChangesetsTable extends Migration { Schema::create('changesets', function (Blueprint $table) { $table->increments('id'); - $table->timestamp('created_at'); + $table->timestamps(); $table->unsignedInteger('data_table_id')->index(); $table->unsignedInteger('target_revision'); + $table->text('message'); $table->boolean('applied'); $table->unsignedInteger('author_id')->index()->nullable(); - $table->longText('content'); // incremental changeset including original row values so that it can be reversed + $table->jsonb('patch'); // incremental changeset including original row values so that it can be reversed $table->foreign('data_table_id')->references('id')->on('data_tables') ->onDelete('cascade'); diff --git a/database/migrations/2018_07_12_185431_create_comments_table.php b/database/migrations/2018_07_12_185431_create_comments_table.php new file mode 100644 index 0000000..5b347b0 --- /dev/null +++ b/database/migrations/2018_07_12_185431_create_comments_table.php @@ -0,0 +1,44 @@ +increments('id'); + $table->timestamps(); + $table->unsignedInteger('ancestor_id')->index()->nullable(); + $table->unsignedInteger('author_id')->index(); + $table->unsignedInteger('data_table_id')->index(); + $table->text('message'); + + $table->foreign('data_table_id')->references('id')->on('data_tables') + ->onDelete('cascade'); + + $table->foreign('author_id')->references('id')->on('users') + ->onDelete('cascade'); + + $table->foreign('ancestor_id')->references('id')->on('comments') + ->onDelete('set null'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('comments'); + } +} diff --git a/database/migrations/2018_07_12_185840_create_favourites_table.php b/database/migrations/2018_07_12_185840_create_favourites_table.php new file mode 100644 index 0000000..9eb7431 --- /dev/null +++ b/database/migrations/2018_07_12_185840_create_favourites_table.php @@ -0,0 +1,40 @@ +increments('id'); + $table->timestamps(); + + $table->unsignedInteger('user_id'); + $table->unsignedInteger('data_table_id'); + + $table->foreign('user_id')->references('id')->on('users') + ->onDelete('cascade'); + + $table->foreign('data_table_id')->references('id')->on('data_tables') + ->onDelete('cascade'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('favourites'); + } +} diff --git a/database/-postponed/2018_07_08_203801_create_discussion_follows_table.php b/database/migrations/2018_07_12_190059_create_discussion_follows_table.php similarity index 65% rename from database/-postponed/2018_07_08_203801_create_discussion_follows_table.php rename to database/migrations/2018_07_12_190059_create_discussion_follows_table.php index cc16aee..37c9c02 100644 --- a/database/-postponed/2018_07_08_203801_create_discussion_follows_table.php +++ b/database/migrations/2018_07_12_190059_create_discussion_follows_table.php @@ -16,16 +16,14 @@ class CreateDiscussionFollowsTable extends Migration Schema::create('discussion_follows', function (Blueprint $table) { $table->increments('id'); $table->timestamps(); - $table->unsignedInteger('user_id'); - $table->unsignedInteger('data_table_id'); + $table->unsignedInteger('user_id'); + $table->unsignedInteger('data_table_id'); - $table->foreign('user_id') - ->references('id')->on('users') - ->onDelete('cascade'); + $table->foreign('user_id')->references('id')->on('users') + ->onDelete('cascade'); - $table->foreign('data_table_id') - ->references('id')->on('data_tables') - ->onDelete('cascade'); + $table->foreign('data_table_id')->references('id')->on('data_tables') + ->onDelete('cascade'); }); } diff --git a/database/migrations/2018_07_12_190346_create_content_reports_table.php b/database/migrations/2018_07_12_190346_create_content_reports_table.php new file mode 100644 index 0000000..6fc48ee --- /dev/null +++ b/database/migrations/2018_07_12_190346_create_content_reports_table.php @@ -0,0 +1,39 @@ +increments('id'); + $table->timestamps(); + $table->morphs('object'); + $table->unsignedInteger('author_id')->index(); + $table->text('message'); + + $table->foreign('author_id')->references('id')->on('users') + ->onDelete('cascade'); + + // we can't add a foreign key constraint on the morph column, need to check manually + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('content_reports'); + } +} diff --git a/database/migrations/2018_07_12_190830_create_notifications_table.php b/database/migrations/2018_07_12_190830_create_notifications_table.php new file mode 100644 index 0000000..312ab73 --- /dev/null +++ b/database/migrations/2018_07_12_190830_create_notifications_table.php @@ -0,0 +1,41 @@ +increments('id'); + $table->timestamps(); + $table->unsignedInteger('user_id')->index(); + $table->unsignedInteger('actor_id')->index()->nullable(); // who did it + $table->string('action'); // what happened, e.g.: favourited, mentioned, forked, commented + $table->nullableMorphs('context'); // the action target or context + + $table->foreign('actor_id')->references('id')->on('users') + ->onDelete('cascade'); + + $table->foreign('user_id')->references('id')->on('users') + ->onDelete('cascade'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('notifications'); + } +}