From efa79425a4c05250d2f48f2c7867d45d3a9205c5 Mon Sep 17 00:00:00 2001
From: ManifoldFR <wilson.jallet@gmail.com>
Date: Fri, 31 Aug 2018 16:35:06 +0200
Subject: [PATCH] Fix migrations: dropped columns used in GraphQL, etc

---
 db/migrations/20180302130024_create_messages.js  | 14 ++++++++++++++
 db/migrations/20180302130024_create_posts.js     | 15 ---------------
 db/migrations/20180302152113_requests.js         | 12 ++++++------
 ...302184519_rename_recipient_user_join_group.js | 13 -------------
 .../20180303192411_create_metaGroups.js          |  6 +++---
 .../20180307213043_fixes_and_messages.js         | 15 +++++----------
 ...s_again.js => 20180316003119_create_posts.js} |  7 -------
 db/migrations/20180415160405_message_types.js    | 16 ----------------
 8 files changed, 28 insertions(+), 70 deletions(-)
 create mode 100644 db/migrations/20180302130024_create_messages.js
 delete mode 100644 db/migrations/20180302130024_create_posts.js
 delete mode 100644 db/migrations/20180302184519_rename_recipient_user_join_group.js
 rename db/migrations/{20180316003119_create_posts_again.js => 20180316003119_create_posts.js} (54%)

diff --git a/db/migrations/20180302130024_create_messages.js b/db/migrations/20180302130024_create_messages.js
new file mode 100644
index 0000000..dead1ac
--- /dev/null
+++ b/db/migrations/20180302130024_create_messages.js
@@ -0,0 +1,14 @@
+
+exports.up = function(knex, Promise) {
+    return knex.schema.createTable('messages', function (table) {
+        table.timestamps(true,true);
+        table.increments('id');
+
+        table.string('title').notNullable();
+        table.text('content');
+    });
+};
+
+exports.down = function(knex, Promise) {
+    return knex.schema.dropTable('messages');
+};
diff --git a/db/migrations/20180302130024_create_posts.js b/db/migrations/20180302130024_create_posts.js
deleted file mode 100644
index b5d952a..0000000
--- a/db/migrations/20180302130024_create_posts.js
+++ /dev/null
@@ -1,15 +0,0 @@
-
-exports.up = function(knex, Promise) {
-    return knex.schema.createTable('posts', function (table) {
-        table.timestamps(true,true);
-        table.increments('id');
-
-        table.string('title').notNullable();
-        table.text('description');
-        table.specificType('authors', knex.raw('varchar(128)[]')).notNullable();
-    });
-};
-
-exports.down = function(knex, Promise) {
-    return knex.schema.dropTable('posts');
-};
diff --git a/db/migrations/20180302152113_requests.js b/db/migrations/20180302152113_requests.js
index c0c4f45..7fa0688 100644
--- a/db/migrations/20180302152113_requests.js
+++ b/db/migrations/20180302152113_requests.js
@@ -1,22 +1,22 @@
 
 exports.up = function(knex, Promise) {
-    return knex.schema.createTable('request', function (table){
+    return knex.schema.createTable('requests', function (table){
         table.timestamps(true, true);
         table.increments('id');
-        table.string('recepient').notNullable();
+        table.string('recipient').notNullable();
         table.text('message');
     }).then(()=>{
         return knex.schema.createTable('user_join_group', function (table) {
-            table.inherits('request');
+            table.inherits('requests');
             table.string('useruid').notNullable();
         }).then(()=>{
             return knex.schema.createTable('group_join_event', function (table){
-                table.inherits('request');
+                table.inherits('requests');
                 table.string('eventuid').notNullable();
                 table.string('senderuid').notNullable();
             }).then(() => {
                 return knex.schema.createTable('your_group_host_event', function(table){
-                    table.inherits('request');
+                    table.inherits('requests');
                     table.string('eventuid').notNullable();
                     table.string('senderuid').notNullable();
                 });
@@ -29,7 +29,7 @@ exports.down = function(knex, Promise) {
     return knex.schema.dropTable('your_group_host_event').then(() => {
         return knex.schema.dropTable('group_join_event').then(() => {
             return knex.schema.dropTable('user_join_group').then(() => {
-                return knex.schema.dropTable('request').then(() => {
+                return knex.schema.dropTable('requests').then(() => {
                 });
             });
         });
diff --git a/db/migrations/20180302184519_rename_recipient_user_join_group.js b/db/migrations/20180302184519_rename_recipient_user_join_group.js
deleted file mode 100644
index 896d69d..0000000
--- a/db/migrations/20180302184519_rename_recipient_user_join_group.js
+++ /dev/null
@@ -1,13 +0,0 @@
-
-exports.up = function(knex, Promise) {
-    return knex.schema.renameTable('request','requests').table('requests', function(table) {
-        table.renameColumn('recepient','recipient');
-    });
-};
-
-exports.down = function(knex, Promise) {
-    return knex.schema.table('requests', function (table) {
-        table.renameColumn('recipient', 'recepient');
-        table.renameColumn('requests','request');
-    });
-};
diff --git a/db/migrations/20180303192411_create_metaGroups.js b/db/migrations/20180303192411_create_metaGroups.js
index 5888122..03a7ed8 100644
--- a/db/migrations/20180303192411_create_metaGroups.js
+++ b/db/migrations/20180303192411_create_metaGroups.js
@@ -1,13 +1,13 @@
 
 /* 
-Une mutation pour rajouter dans la BDD les types SimpleGroup et MetaGroup 
+Une migrations pour rajouter dans la BDD les tables simple_group et meta_group 
 (cf la documentation de l'API GraphQL)
-Les objets qui étaient jusqu''à présent stoqués dans la table groups 
+Les objets qui étaient jusqu'à présent stoqués dans la table groups 
 sont déplacés dans la table simple_groups
 En cas de rollback, le déplacement se fait dans l'autre sens
 (et les meta groupes sont perdus)
 
-Après cette mutation, plus rien n'est sensé être mis directement dans la table groups
+Après cette migration, plus rien n'est sensé être mis directement dans la table groups
 */
 
 exports.up = function(knex, Promise) {
diff --git a/db/migrations/20180307213043_fixes_and_messages.js b/db/migrations/20180307213043_fixes_and_messages.js
index 7c46a72..fae3685 100644
--- a/db/migrations/20180307213043_fixes_and_messages.js
+++ b/db/migrations/20180307213043_fixes_and_messages.js
@@ -1,11 +1,9 @@
 
 exports.up = async function(knex, Promise) {
-    await knex.schema.renameTable("posts", "messages");
-    await knex.schema.table('messages', function(table){
-        table.renameColumn('description', 'content');
-    });
     await knex.schema.createTable('announcements', function (table){
         table.inherits('messages');
+        table.specificType('authors', knex.raw('varchar(128)[]'));
+        table.integer('views').defaultTo(0);
     });
     await knex.schema.createTable('events', function (table){
         table.inherits('messages');
@@ -13,6 +11,7 @@ exports.up = async function(knex, Promise) {
         table.dateTime('start_time');
         table.dateTime('end_time');
         table.boolean('is_announcement');
+        table.specificType('authors', knex.raw('varchar(128)[]'));
     });
     await knex.schema.createTable('group_message_relationships', function(table){
         table.integer('message').notNullable();
@@ -31,14 +30,10 @@ exports.down = async function(knex, Promise) {
     await knex.schema.dropTable('group_message_relationships');
     await knex.schema.dropTable('user_participation');
     let event_posts = await knex.select().from('events');
-    let announcment_posts = await knex.select().from('announcements');
+    let announcement_posts = await knex.select().from('announcements');
     await knex.schema.dropTable('events');
     await knex.schema.dropTable('announcements');
-    await knex.schema.renameTable('messages', 'posts');
-    await knex.schema.table('posts', function(table){
-        table.renameColumn('content', 'description');
-    });
     await knex('messages').insert(event_posts);
-    await knex('messages').insert(announcment_posts);
+    await knex('messages').insert(announcement_posts);
     return;
 };
diff --git a/db/migrations/20180316003119_create_posts_again.js b/db/migrations/20180316003119_create_posts.js
similarity index 54%
rename from db/migrations/20180316003119_create_posts_again.js
rename to db/migrations/20180316003119_create_posts.js
index 6378378..2e41a84 100644
--- a/db/migrations/20180316003119_create_posts_again.js
+++ b/db/migrations/20180316003119_create_posts.js
@@ -3,18 +3,11 @@ exports.up = async function(knex, Promise) {
     await knex.schema.createTable('posts', function(table) {
         table.inherits('messages');
     });
-    await knex.schema.table('announcements', function(table) {
-        table.integer('views').defaultTo(0);
-    });
     return;
 };
 
 exports.down = async function(knex, Promise) {
     await knex.schema.dropTable('posts');
 
-    await knex.schema.table("announcements", function(table) {
-        table.dropColumn('views');
-    });
-
     return;
 };
diff --git a/db/migrations/20180415160405_message_types.js b/db/migrations/20180415160405_message_types.js
index eb33d9b..cae1830 100644
--- a/db/migrations/20180415160405_message_types.js
+++ b/db/migrations/20180415160405_message_types.js
@@ -1,9 +1,5 @@
 
 exports.up = async function(knex, Promise) {
-    await knex.schema.dropTable('posts');
-    await knex.schema.table('messages', function(table){    
-        table.dropColumn('authors');
-    });
     await knex.schema.createTable('private_post', function(table){
         table.inherits('messages');
         table.string('author_uid', 128).notNullable();
@@ -22,12 +18,6 @@ exports.up = async function(knex, Promise) {
         table.string('recipient_uid', 128).notNullable();
         table.string('for_question', 128).notNullable();
     });
-    await knex.schema.table('events', function(table){
-        table.specificType('authors', knex.raw('varchar(128)[]'));
-    });
-    await knex.schema.table('announcements', function(table){
-        table.specificType('authors', knex.raw('varchar(128)[]'));
-    });
     return;
 };
 
@@ -35,11 +25,5 @@ exports.down = async function(knex, Promise) {
     await knex.schema.dropTable('answer');
     await knex.schema.dropTable('question');
     await knex.schema.dropTable('private_post');
-    await knex.schema.table('messages', function(table){
-        table.specificType('authors', knex.raw('varchar(128)[]'));
-    });
-    await knex.schema.createTable('posts', function(table) {
-        table.inherits('messages');
-    });
     return;
 };
-- 
GitLab