Explorar el Código

Add migrations

sbkwgh hace 8 años
padre
commit
a5287218d4

+ 3 - 3
migrations/20170925200317-create-categories-table.js

@@ -12,15 +12,15 @@ module.exports = {
       updatedAt: Sequelize.DATE,
 
       name: {
-        type: DataTypes.STRING,
+        type: Sequelize.STRING,
         unique: true,
         allowNull: false,
       },
       value: {
-        type: DataTypes.STRING,
+        type: Sequelize.STRING,
         unique: true
       },
-      color: DataTypes.STRING
+      color: Sequelize.STRING
     })
   },
 

+ 21 - 0
migrations/20170925201609-create-ips-table.js

@@ -0,0 +1,21 @@
+'use strict';
+
+module.exports = {
+  up: (queryInterface, Sequelize) => {
+    return queryInterface.createTable('ips', {
+      id: {
+        type: Sequelize.INTEGER,
+        primaryKey: true,
+        autoIncrement: true
+      },
+      createdAt: Sequelize.DATE,
+      updatedAt: Sequelize.DATE,
+
+      ip: Sequelize.STRING(45)
+    })
+  },
+
+  down: (queryInterface, Sequelize) => {
+    return queryInterface.dropTable('ips');
+  }
+};

+ 33 - 0
migrations/20170925201924-create-logs-table.js

@@ -0,0 +1,33 @@
+'use strict';
+
+module.exports = {
+  up: (queryInterface, Sequelize) => {
+    return queryInterface.createTable('logs', {
+      id: {
+        type: Sequelize.INTEGER,
+        primaryKey: true,
+        autoIncrement: true
+      },
+      createdAt: Sequelize.DATE,
+      updatedAt: Sequelize.DATE,
+
+      route: DataTypes.ENUM([
+        'index',
+        'search',
+        'settingsAccount',
+        'settingsGeneral',
+        'thread',
+        'threadNew',
+        'userPosts',
+        'userThreads'
+      ]),
+      ThreadId: Sequelize.INTEGER,
+      UserId: Sequelize.INTEGER,
+      SessionUserId: Sequelize.INTEGER
+    })
+  },
+
+  down: (queryInterface, Sequelize) => {
+    return queryInterface.dropTable('logs');
+  }
+};

+ 30 - 0
migrations/20170925202317-create-notifications-table.js

@@ -0,0 +1,30 @@
+'use strict';
+
+module.exports = {
+  up: (queryInterface, Sequelize) => {
+    return queryInterface.createTable('notifications', {
+      id: {
+        type: Sequelize.INTEGER,
+        primaryKey: true,
+        autoIncrement: true
+      },
+      createdAt: Sequelize.DATE,
+      updatedAt: Sequelize.DATE,
+
+      interacted: {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      },
+      read: {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      },
+      type: Sequelize.ENUM('mention', 'thread update', 'reply'),
+      UserId: Sequelize.INTEGER
+    })
+  },
+
+  down: (queryInterface, Sequelize) => {
+    return queryInterface.dropTable('notifications');
+  }
+};

+ 25 - 0
migrations/20170925202519-create-pollanswers-table.js

@@ -0,0 +1,25 @@
+'use strict';
+
+module.exports = {
+  up: (queryInterface, Sequelize) => {
+    return queryInterface.createTable('pollanswers', {
+      id: {
+        type: Sequelize.INTEGER,
+        primaryKey: true,
+        autoIncrement: true
+      },
+      createdAt: Sequelize.DATE,
+      updatedAt: Sequelize.DATE,
+      
+      answer: {
+        type: Sequelize.STRING,
+        allowNull: false
+      },
+      PollQuestionId: Sequelize.INTEGER
+    })
+  },
+
+  down: (queryInterface, Sequelize) => {
+    return queryInterface.dropTable('pollanswers');
+  }
+};

+ 25 - 0
migrations/20170925202651-create-pollquestions-table.js

@@ -0,0 +1,25 @@
+'use strict';
+
+module.exports = {
+  up: (queryInterface, Sequelize) => {
+    return queryInterface.createTable('pollquestions', {
+      id: {
+        type: Sequelize.INTEGER,
+        primaryKey: true,
+        autoIncrement: true
+      },
+      createdAt: Sequelize.DATE,
+      updatedAt: Sequelize.DATE,
+      
+      question: {
+        type: Sequelize.STRING,
+        allowNull: false
+      },
+      UserId: Sequelize.INTEGER
+    })
+  },
+
+  down: (queryInterface, Sequelize) => {
+    return queryInterface.dropTable('pollquestions');
+  }
+};

+ 23 - 0
migrations/20170925202801-create-pollvotes-table.js

@@ -0,0 +1,23 @@
+'use strict';
+
+module.exports = {
+  up: (queryInterface, Sequelize) => {
+    return queryInterface.createTable('pollvotes', {
+      id: {
+        type: Sequelize.INTEGER,
+        primaryKey: true,
+        autoIncrement: true
+      },
+      createdAt: Sequelize.DATE,
+      updatedAt: Sequelize.DATE,
+      
+      UserId: Sequelize.INTEGER,
+      PollAnswerId: Sequelize.INTEGER,
+      PollQuestionId: Sequelize.INTEGER
+    })
+  },
+
+  down: (queryInterface, Sequelize) => {
+    return queryInterface.dropTable('pollvotes');
+  }
+};

+ 23 - 0
migrations/20170925203055-create-postnotifications-table.js

@@ -0,0 +1,23 @@
+'use strict';
+
+module.exports = {
+  up: (queryInterface, Sequelize) => {
+    return queryInterface.createTable('postnotifications', {
+      id: {
+        type: Sequelize.INTEGER,
+        primaryKey: true,
+        autoIncrement: true
+      },
+      createdAt: Sequelize.DATE,
+      updatedAt: Sequelize.DATE,
+      
+      UserId: Sequelize.INTEGER,
+      PostId: Sequelize.INTEGER,
+      NotificationId: Sequelize.INTEGER
+    })
+  },
+
+  down: (queryInterface, Sequelize) => {
+    return queryInterface.dropTable('postnotifications');
+  }
+};

+ 34 - 0
migrations/20170925203433-create-posts-table.js

@@ -0,0 +1,34 @@
+'use strict';
+
+module.exports = {
+  up: (queryInterface, Sequelize) => {
+    return queryInterface.createTable('posts', {
+      id: {
+        type: Sequelize.INTEGER,
+        primaryKey: true,
+        autoIncrement: true
+      },
+      createdAt: Sequelize.DATE,
+      updatedAt: Sequelize.DATE,
+      
+      content: {
+        Sequelize.TEXT,
+        allowNull: false
+      },
+      postNumber: Sequelize.INTEGER,
+      replyingToUsername: Sequelize.STRING,
+      removed: {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      },
+
+      UserId: Sequelize.INTEGER,
+      ThreadId: Sequelize.INTEGER,
+      replyId: Sequelize.INTEGER
+    })
+  },
+
+  down: (queryInterface, Sequelize) => {
+    return queryInterface.dropTable('posts');
+  }
+};

+ 27 - 0
migrations/20170925204011-create-reports-table.js

@@ -0,0 +1,27 @@
+'use strict';
+
+module.exports = {
+  up: (queryInterface, Sequelize) => {
+    return queryInterface.createTable('reports', {
+      id: {
+        type: Sequelize.INTEGER,
+        primaryKey: true,
+        autoIncrement: true
+      },
+      createdAt: Sequelize.DATE,
+      updatedAt: Sequelize.DATE,
+      
+      reason: {
+        type: Sequelize.ENUM,
+        values: ['spam', 'inappropriate', 'harassment']
+      },
+
+      FlaggedByUserId: Sequelize.INTEGER,
+      PostId: Sequelize.INTEGER
+    })
+  },
+
+  down: (queryInterface, Sequelize) => {
+    return queryInterface.dropTable('reports');
+  }
+};

+ 22 - 0
migrations/20170925204327-create-settings-table.js

@@ -0,0 +1,22 @@
+'use strict';
+
+module.exports = {
+  up: (queryInterface, Sequelize) => {
+    return queryInterface.createTable('settings', {
+      id: {
+        type: Sequelize.INTEGER,
+        primaryKey: true,
+        autoIncrement: true
+      },
+      createdAt: Sequelize.DATE,
+      updatedAt: Sequelize.DATE,
+      
+      forumName: Sequelize.STRING,
+      forumDescription: Sequelize.STRING
+    })
+  },
+
+  down: (queryInterface, Sequelize) => {
+    return queryInterface.dropTable('settings');
+  }
+};

+ 37 - 0
migrations/20170925204827-create-threads-table.js

@@ -0,0 +1,37 @@
+'use strict';
+
+module.exports = {
+  up: (queryInterface, Sequelize) => {
+    return queryInterface.createTable('threads', {
+      id: {
+        type: Sequelize.INTEGER,
+        primaryKey: true,
+        autoIncrement: true
+      },
+      createdAt: Sequelize.DATE,
+      updatedAt: Sequelize.DATE,
+      
+      name: {
+        type: Sequelize.STRING,
+        allowNull: false
+      },
+      slug: Sequelize.TEXT,
+      postsCount: {
+        type: Sequelize.INTEGER,
+        defaultValue: 0
+      },
+      locked: {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      },
+
+      CategoryId: Sequelize.INTEGER,
+      UserId: Sequelize.INTEGER,
+      PollQuestionId: Sequelize.INTEGER
+    })
+  },
+
+  down: (queryInterface, Sequelize) => {
+    return queryInterface.dropTable('threads');
+  }
+};

+ 17 - 0
migrations/20170925205531-create-user_post-table.js

@@ -0,0 +1,17 @@
+'use strict';
+
+module.exports = {
+  up: (queryInterface, Sequelize) => {
+    return queryInterface.createTable('user_post', {
+      createdAt: Sequelize.DATE,
+      updatedAt: Sequelize.DATE,
+      
+      PostId: Sequelize.INTEGER,
+      UserId: Sequelize.INTEGER
+    })
+  },
+
+  down: (queryInterface, Sequelize) => {
+    return queryInterface.dropTable('user_post');
+  }
+};

+ 17 - 0
migrations/20170925205649-create-userip-table.js

@@ -0,0 +1,17 @@
+'use strict';
+
+module.exports = {
+  up: (queryInterface, Sequelize) => {
+    return queryInterface.createTable('userip', {
+      createdAt: Sequelize.DATE,
+      updatedAt: Sequelize.DATE,
+
+      IpId: Sequelize.INTEGER,
+      UserId: Sequelize.INTEGER
+    })
+  },
+
+  down: (queryInterface, Sequelize) => {
+    return queryInterface.dropTable('userip');
+  }
+};

+ 34 - 0
migrations/20170925205832-create-users-table.js

@@ -0,0 +1,34 @@
+'use strict';
+
+module.exports = {
+  up: (queryInterface, Sequelize) => {
+    return queryInterface.createTable('users', {
+      id: {
+        type: Sequelize.INTEGER,
+        primaryKey: true,
+        autoIncrement: true
+      },
+      createdAt: Sequelize.DATE,
+      updatedAt: Sequelize.DATE,
+
+      username: {
+        type: Sequelize.STRING,
+        unique: true,
+      },
+      description: Sequelize.TEXT,
+      color: Sequelize.TEXT,
+      hash: {
+        type: Sequelize.STRING,
+        allowNull: false
+      },
+      admin: {
+        type: Sequelize.BOOLEAN,
+        defaultValue: false
+      }
+    })
+  },
+
+  down: (queryInterface, Sequelize) => {
+    return queryInterface.dropTable('users');
+  }
+};